Heroku 和捆绑器版本

Heroku and bundler version

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

但出现此消息:

Warning: the running version of Bundler (1.15.2) is older than the version that created the lockfile (1.16.1). We suggest you upgrade to the latest version of Bundler by running gem install bundler.

所以我运行:

heroku run gem install bundler

Running gem install bundler on ⬢ myapp... up, run.3401 (Standard-1X)

Fetching: bundler-1.16.1.gem (100%)

Successfully installed bundler-1.16.1

Parsing documentation for bundler-1.16.1

Installing ri documentation for bundler-1.16.1

Done installing documentation for bundler after 11 seconds

1 gem installed

但是当我重试推送代码时:

heroku run bundle install

Running bundle install on ⬢ myapp... up, run.9532 (Standard-1X)

Warning: the running version of Bundler (1.15.2) is older than the version that created the lockfile (1.16.1). We suggest you upgrade to the latest version of Bundler by running gem install bundler.

在 gem Gemfile.lock 我得到:

BUNDLED WITH 1.16.1

我不明白为什么这个捆绑器版本不想安装在 Heroku 上。

Bundler 1.15.2 是预装在 Heroku dynos 上的版本。在您的机器上将 Bundler 更改为 1.16.1 不会更改 Heroku 上安装的版本。

此外,您无法通过 运行ning bundle install 在 Heroku 上更新 Bundler。即使这是可能的,它也会在 Bundler 的下一个 运行 上生效——通常,你只在 Heroku dyno 上捆绑一次。

我的建议是:这只是一个警告,无视它,希望Heroku以后多更新Bundler。

您还需要确保为此使用标准的 Heroku buildpack。

当我尝试将我的应用程序从 Cedar 升级到 Heroku-20 时,它一直失败并出现同样的捆绑程序错误。但是,最终,我记得我安装了一个自定义构建版本,结果证明这是错误的捆绑程序版本的来源。

一旦我切换回默认的 Heroku Ruby buildpack,我终于可以毫无问题地进行部署了。