Docker ruby​​:无法将捆绑程序升级到版本2

时间:2019-12-23 12:26:17

标签: ruby docker bundler

我正在尝试在从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设置为默认值?

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