如何更新Docker主机上的Gemfile.lock?

duk*_*ave 12 ruby-on-rails bundler docker

在Docker容器中使用Rails时, 几个 帖子(包括docker.com上的一个帖子)使用以下模式:

  1. DockerfileADD GemfileADD Gemfile.lock,然后RUN bundle install.
  2. 使用创建一个新的Rails应用程序docker-compose run web rails new.

由于我们RUN bundle install要构建图像,因此docker-compose build web在更新之后似乎是合适的Gemfile.

这可以在图像内部更新gemset ,但是:

Gemfile.lock泊坞窗主机将不会被更新,以反映更改Gemfile.这是一个问题,因为:

  1. Gemfile.lock 应该在您的存储库中,并且:

  2. 它应该与你的当前一致Gemfile.


所以:

如何Gemfile.lock在主机上更新,以便可以检入版本控制?

duk*_*ave 8

执行bundle内部run 更新Gemfile.lock主机:

docker-compose run web bundle
Run Code Online (Sandbox Code Playgroud)

但是:您 必须build再次使用该图像.


Dan*_*G2k 6

为了清楚起见,要运行的命令是:

docker-compose run web bundle
docker-compose up --build
Run Code Online (Sandbox Code Playgroud)

其中web是 Dockerized Rails 应用程序的名称。