【问题标题】:'You must use Bundler 2 or greater with this lockfile.' even with Bundler 2.0.2 installed'您必须使用 Bundler 2 或更高版本与此锁定文件。'即使安装了 Bundler 2.0.2
【发布时间】:2019-10-29 21:26:27
【问题描述】:

我正在尝试 Dockerize 我的 Rails 应用程序并在运行 docker build -t tml_portal 时不断收到此警告:

Sending build context to Docker daemon  355.1MB
Step 1/1 : FROM rails:onbuild
# Executing 4 build triggers
 ---> Using cache
 ---> Using cache
 ---> Running in 641c1404bf87
You must use Bundler 2 or greater with this lockfile.
The command '/bin/sh -c bundle install' returned a non-zero code: 20

我已经尝试过bundler update --systemgem uninstall bundlergem install bundler 2.0.2 等。基本上互联网上的所有建议。我会说我有时会遇到问题,如果我切换目录,RVM 切换到 ruby 2.3.3,我必须切换到 rvm use 2.6.5。我的系统红宝石与本地不同。不知道这是否与它有关,但我只是想不出一个解决方案。我还确保删除 Docker 构建缓存。

【问题讨论】:

  • 您是否在项目中的某处指定了 ruby​​ 版本,例如 .ruby-version 文件或 Gemfile?
  • 不应该 bundler update --systembundle update --bundler 吗? gem install bundler 2.0.2 也一样,应该是 gem install bundler -v 2.0.2
  • 我的 Gem 文件中有 Ruby 版本 2.6.5
  • 我也试过这些命令。还是同样的错误。也许我需要重新安装 Docker。我在尝试部署到 Heroku 和 AWS 时也遇到了这个噩梦。

标签: ruby-on-rails ruby docker bundler ruby-on-rails-6


【解决方案1】:

Gemfile.lock 的最底部应该说明使用了哪个版本的 Bundler:

# Gemfile.lock

BUNDLED WITH
   2.0.2

您还可以通过以下方式在控制台中检查您当前使用的 Bundler 版本:

bundler -v

确保两者都具有您要查找的版本。如果没有,请完全删除 Gemfile.lock 并且 - 除非您安装了更新版本 - 它应该与更新版本重新捆绑。

【讨论】:

  • 哦,相信我,我已经做到了。我一直在与 Bundler 的一位开发人员通信。我已经卸载了所有版本的 Ruby 和 RVM。我现在正在使用 rbenv。这个人建议了他们正在开发的 Bundler 的 beta 版本。仍然没有运气,但会回来报告。
猜你喜欢
  • 2019-04-13
  • 1970-01-01
  • 2020-07-04
  • 2020-04-14
  • 2019-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-20
相关资源
最近更新 更多