如何在Docker容器中运行一个Ruby应用程序?

在Docker容器中运行一个Ruby应用程序,可以通过以下步骤进行:

  1. 编写Ruby应用程序:
ruby
require 'sinatra'

get '/' do 
  'Hello World!' 
end
  1. 构建Dockerfile:
Dockerfile
FROM ruby:2.7-alpine
WORKDIR /app
COPY . .
RUN gem install sinatra
ENTRYPOINT ["ruby", "app.rb"]

此Dockerfile构建基于ruby:2.7-alpine的镜像,将当前目录中的代码复制到镜像,安装Sinatra框架依赖,并指定app.rb为入口点。

  1. 构建镜像:
docker build -t sinatra-app .
  1. 运行容器:
docker run -p 4567:4567 -d sinatra-app 

此命令在后台运行容器,并映射4567端口。

  1. 访问应用:
    打开http://localhost:4567可以访问Sinatra应用。
  2. 在Docker Compose中定义应用:
yaml
version: '3'  
services:
  sinatra-app:
    build: . 
    image: sinatra-app  
    ports:  
      - "4567:4567"
docker-compose up  

可以一键启动应用。