Jump to content

Docker/Ruby

From Wikiversity

Dockerfile

[edit | edit source]
# Configures a Ruby web server and copies the current folder content
# to use as app root.

# Use the following commands to build and run the server.
#   docker build -t ruby-server .
#   docker run -d -p 8000:8000 --name=ruby-server ruby-server

# Then open a web browser and connect to http://localhost:8000 .

# References:
#   https://hub.docker.com/_/ruby

FROM ruby:alpine

WORKDIR /usr/src/app
COPY . .

EXPOSE 8000

CMD ["ruby", "app.rb"]

app.rb

[edit | edit source]
# Displays "Hello world!"
#
# References:
#   https://en.wikipedia.org/wiki/WEBrick

require 'webrick'
server = WEBrick::HTTPServer.new(:Port => 8000)

server.mount_proc('/') do |request, response|
    response.body = "Hello world!"
end

trap("INT") {server.shutdown}

server.start

Try It

[edit | edit source]

Online Free

[edit | edit source]
  1. Use Play with Docker. Create an account and/or log in.
  2. Start an interactive session and add a new instance.
  3. In the terminal window, enter the following commands:
    • touch Dockerfile
    • touch app.rb
  4. Use the Editor button to edit both files and save the contents above into each respective file.
  5. Run the following commands:
    • docker build -t ruby-server .
    • docker run -d -p 8000:8000 --name=ruby-server ruby-server
  6. In the top window, select the 8000 button to connect to the running server.

On Your Own System

[edit | edit source]
  1. Install Docker Desktop or the Docker Engine.
  2. Save the files above into a new Docker Flask folder:
    • Dockerfile
    • app.rb
  3. At a command prompt, change to the Docker Flask folder and then run the following commands:
    • docker build -t ruby-server .
    • docker run -d -p 8000:8000 --name=ruby-server ruby-server
  4. Open a web browser to connect to the running server:

See Also

[edit | edit source]