在 Docker 容器中管理 Ruby 依赖,可以使用以下两种方法:
- 使用 Gemfile 和 Bundler:
首先,在项目根目录下创建一个名为 Gemfile
的文件。在这个文件中,你可以指定项目所需的 Ruby 依赖包。例如:
source "https://rubygems.org" gem "rails", "~> 6.1.4" gem "pg", "~> 1.1" gem "bcrypt", "~> 3.1.13"
接下来,安装 bundler,这是一个 Ruby 依赖管理工具。在终端中运行以下命令:
gem install bundler
在项目根目录下,运行以下命令以安装所有依赖项:
bundle install
这将会根据 Gemfile
中的指定安装所有必要的 Ruby 库。
- 使用 Dockerfile:
在项目根目录下创建一个名为 Dockerfile
的文件。在这个文件中,你可以定义一个包含 Ruby 环境和依赖的 Docker 镜像。例如:
# 使用官方 Ruby 镜像作为基础镜像 FROM ruby:3.0 # 设置工作目录 WORKDIR /usr/src/app # 复制 Gemfile 和 Gemfile.lock 到工作目录 COPY Gemfile Gemfile.lock ./ # 安装依赖 RUN bundle install # 复制项目文件到工作目录 COPY . . # 暴露端口 EXPOSE 3000 # 启动应用 CMD ["rails", "server", "-b", "0.0.0.0"]
在这个示例中,我们使用了官方的 Ruby 3.0 镜像作为基础镜像,并安装了 bundler
以管理依赖。然后,我们将项目文件复制到容器中,并设置了一个监听 3000 端口的 Rails 服务器。
要构建 Docker 镜像,请在终端中运行以下命令:
docker build -t my-ruby-app .
这将使用当前目录下的 Dockerfile
构建一个名为 my-ruby-app
的 Docker 镜像。
要运行 Docker 容器,请在终端中运行以下命令:
docker run -p 3000:3000 my-ruby-app
这将启动一个运行在 3000 端口的 Docker 容器,其中包含了你的 Ruby 应用和所有依赖项。