在 Docker 容器中管理 Ruby 依賴,可以使用以下兩種方法:
首先,在項目根目錄下創(chuàng)建一個名為 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
這將會根據(jù) Gemfile
中的指定安裝所有必要的 Ruby 庫。
在項目根目錄下創(chuàng)建一個名為 Dockerfile
的文件。在這個文件中,你可以定義一個包含 Ruby 環(huán)境和依賴的 Docker 鏡像。例如:
# 使用官方 Ruby 鏡像作為基礎(chǔ)鏡像
FROM ruby:3.0
# 設(shè)置工作目錄
WORKDIR /usr/src/app
# 復制 Gemfile 和 Gemfile.lock 到工作目錄
COPY Gemfile Gemfile.lock ./
# 安裝依賴
RUN bundle install
# 復制項目文件到工作目錄
COPY . .
# 暴露端口
EXPOSE 3000
# 啟動應(yīng)用
CMD ["rails", "server", "-b", "0.0.0.0"]
在這個示例中,我們使用了官方的 Ruby 3.0 鏡像作為基礎(chǔ)鏡像,并安裝了 bundler
以管理依賴。然后,我們將項目文件復制到容器中,并設(shè)置了一個監(jiān)聽 3000 端口的 Rails 服務(wù)器。
要構(gòu)建 Docker 鏡像,請在終端中運行以下命令:
docker build -t my-ruby-app .
這將使用當前目錄下的 Dockerfile
構(gòu)建一個名為 my-ruby-app
的 Docker 鏡像。
要運行 Docker 容器,請在終端中運行以下命令:
docker run -p 3000:3000 my-ruby-app
這將啟動一個運行在 3000 端口的 Docker 容器,其中包含了你的 Ruby 應(yīng)用和所有依賴項。