在 Docker 容器中管理 Ruby 依赖,可以使用以下两种方法:
首先,在项目根目录下创建一个名为 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
的文件。在这个文件中,你可以定义一个包含 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 应用和所有依赖项。