Rails assets:precompile 使用了错误的捆绑器版本
Rails assets:precompile is using wrong bundler version
我最近更新了我的 dockerized rails 应用程序(5.0 -> 5.2),现在我正在使用 Bundler 2。
我已将 RUN gem install bundler
添加到我的 Dockerfile
以确保我已安装 Bundler 2。我的 RUN bundle install
步骤运行良好,但是当我进入资产预编译步骤时,它似乎又开始使用 Bundler 1:
Step 12/17 : RUN rails assets:precompile --trace
---> Running in facccf7d562c
/usr/local/lib/ruby/gems/2.4.0/gems/bundler-1.14.6/lib/bundler/lockfile_parser.rb:108:in `warn_for_outdated_bundler_version': You must use Bundler 2 or greater with this lockfile. (Bundler::LockfileError)
1.为什么资产预编译甚至使用捆绑器?
2。我怎样才能强制它给用户 Bundler 2?
这是我的 Dockerfile 的片段(在最后一步):
RUN gem install bundler
RUN bundle install
RUN yarn install
RUN rails assets:precompile --trace
您可能需要强制 Bundler 管理依赖项:
bundle exec rails assets:precompile
确保 Gem 环境按照 Gemfile
.
锁定
Rails 通常会尝试让它为您工作,但有时它无法使事情完全同步并且您看到的行为很明显。
似乎是 Ruby 2.4.0
升级到 2.4.5
中的一个错误修复了这个问题。
我最近更新了我的 dockerized rails 应用程序(5.0 -> 5.2),现在我正在使用 Bundler 2。
我已将 RUN gem install bundler
添加到我的 Dockerfile
以确保我已安装 Bundler 2。我的 RUN bundle install
步骤运行良好,但是当我进入资产预编译步骤时,它似乎又开始使用 Bundler 1:
Step 12/17 : RUN rails assets:precompile --trace
---> Running in facccf7d562c
/usr/local/lib/ruby/gems/2.4.0/gems/bundler-1.14.6/lib/bundler/lockfile_parser.rb:108:in `warn_for_outdated_bundler_version': You must use Bundler 2 or greater with this lockfile. (Bundler::LockfileError)
1.为什么资产预编译甚至使用捆绑器?
2。我怎样才能强制它给用户 Bundler 2?
这是我的 Dockerfile 的片段(在最后一步):
RUN gem install bundler
RUN bundle install
RUN yarn install
RUN rails assets:precompile --trace
您可能需要强制 Bundler 管理依赖项:
bundle exec rails assets:precompile
确保 Gem 环境按照 Gemfile
.
Rails 通常会尝试让它为您工作,但有时它无法使事情完全同步并且您看到的行为很明显。
似乎是 Ruby 2.4.0
升级到 2.4.5
中的一个错误修复了这个问题。