![](/img/trans.png)
[英]rake assets:precompile After changing ruby version and bundler version
[英]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
确保根据Gemfile
锁定Gem环境的Gemfile
。
Rails通常会尝试为您工作,但是有时候它可能无法完全同步事情,并且您看到的行为也很明显。
似乎是Ruby 2.4.0
升级到2.4.5
的错误,解决了此问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.