我正在尝试在从2.1
构建的docker映像中安装捆绑程序版本ruby:2.4.1
。我的Docker文件如下所示:
FROM ruby:2.4.1
RUN \
gem update --system --quiet && \
gem install bundler -v '~> 2.1'
# Other commands
但是当我尝试运行bundle install
时,它会失败并显示
You must use Bundler 2 or greater with this lockfile.
当我在容器gem info bundler
中运行时,它输出:
bundler (2.1.2, 1.15.4)
Authors: André Arko, Samuel Giddins, Colby Swandale, Hiroshi
Shibata, David Rodríguez, Grey Baker, Stephanie Morillo, Chris
Morris, James Wen, Tim Moore, André Medeiros, Jessica Lynn Suttles,
Terence Lee, Carl Lerche, Yehuda Katz
Homepage: https://bundler.io
License: MIT
Installed at (2.1.2): /usr/local/bundle
(1.15.4): /usr/local/lib/ruby/gems/2.4.0
我尝试了以下修复程序:
# Set bundler 2.1.2 as default
bundler config default 2.1.2
# Update bundler
gem update bundler
但是他们没有用。系统继续使用捆绑器v1.15.4
如何在ruby docker映像中将捆绑器v2.1.2
设置为默认值?
答案 0 :(得分:3)
我能够使用以下命令在Docker映像中切换到捆绑程序版本2.1:
# Dockerfile
RUN \
gem update --system --quiet && \
gem install bundler -v '~> 2.1'
ENV BUNDLER_VERSION 2.1
答案 1 :(得分:0)
要使用以前的版本,请尝试此修复。看起来像Gemfile.lock的问题。尝试从gemfile.lock 删除 BUNDLED WITH。
删除类似内容,然后重新构建
BUNDLED WITH
2.1.4