Heroku和Bundler版本

3

我像往常一样在Heroku上推送代码。

但是出现了这个消息:

警告:运行的Bundler版本(1.15.2)比创建锁定文件的版本(1.16.1)旧。我们建议您通过运行gem install bundler升级到最新版本的Bundler。

所以我运行了:

heroku run gem install bundler

在⬢ myapp上运行gem install bundler... up, run.3401 (Standard-1X)
正在获取: bundler-1.16.1.gem (100%)
成功安装bundler-1.16.1
解析bundler-1.16.1文档
为bundler-1.16.1安装ri文档
11秒后完成bundler的文档安装
已安装1个gem
但是,当我重试推送代码时:
heroku run bundle install
在⬢ myapp上运行bundle install... up, run.9532 (Standard-1X)
警告:Bundler的运行版本(1.15.2)比创建锁定文件的版本(1.16.1)旧。我们建议您通过运行gem install bundler来升级到最新版本的Bundler。
在Gemfile.lock中,我得到了:
BUNDLED WITH 1.16.1
我不明白为什么这个bundler版本不想在Heroku上安装。

你有没有读过Heroku的Bundler版本文章? - jvillian
2个回答

6
Bundler 1.15.2 是预先安装在 Heroku dynos 上的版本。在您的计算机上更改 Bundler 到 1.16.1 不会改变安装在 Heroku 上的版本。
此外,您不能通过运行 bundle install 在 Heroku 上更新 Bundler。即使可以,它也只会在下一次运行 Bundler 时生效 - 而通常,在 Heroku dyno 上只会捆绑一次。
我的建议是:这只是一个警告,请忽略它,并希望 Heroku 在将来更频繁地更新 Bundler。

1
你只能通过自定义构建包更改Heroku的bundler。https://dev59.com/ZIXca4cB1Zd3GeqPI3p3?rq=1 - whodini9
FYI,Heroku现在使用bundler 1.17.3,至少在Heroku-18堆栈上是这样的,可能与堆栈有关。 - jpw

0

您还需要确保使用标准的Heroku构建包。

当我尝试将我的应用程序从Cedar升级到Heroku-20时,它一直失败并显示相同的bundler错误。但是,最终,我记得我安装了自定义构建包,这就是不正确的bundler版本的来源。

一旦我切换回默认的Heroku Ruby构建包,我终于能够无问题地部署了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接