Heroku:由于gem install bundler而无法推送到Heroku

最后发布: 2017-07-17 19:20:37


问题

突然之间,我无法推送到Heroku上,并且构建成功,但是在编译时,我看到以下内容:

remote: -----> Build succeeded!
remote: -----> Ruby app detected
remote: -----> Compiling Ruby/Rails
remote: sh: 1: gem-install-bundler: not found
remote: sh: 1: gem-install-bundler: not found
remote:  !
remote:  !     An error occurred while installing ruby-2.2.3-The-latest-bundler-is-1.15.2,-but-you-are-currently-running-1.15.1.-To-update,-run-`gem-install-bundler`
remote:  !     
remote:  !     Heroku recommends you use the latest supported Ruby version listed here:
remote:  !     https://devcenter.heroku.com/articles/ruby-support#supported-runtimes
remote:  !     
remote:  !     For more information on syntax for declaring a Ruby version see:
remote:  !     https://devcenter.heroku.com/articles/ruby-versions
remote:  !     
remote:  !     
remote:  !     Debug InformationCommand: 'set -o pipefail; curl -L --fail --retry 5 --retry-delay 1 --connect-timeout 3 --max-time 30 https://s3-external-1.amazonaws.com/heroku-buildpack-ruby/cedar-14/ruby-2.2.3-The-latest-bundler-is-1.15.2,-but-you-are-currently-running-1.15.1.-To-update,-run-`gem-install-bundler`.tgz -s -o - | tar zxf - ' failed unexpectedly:
remote:  !     bash: gem-install-bundler: command not found
remote:  !     
remote:  !     gzip: stdin: unexpected end of file
remote:  !     tar: Child returned status 1
remote:  !     tar: Error is not recoverable: exiting now
remote:  !
remote:  !     Push rejected, failed to compile Ruby app.
remote: 
remote:  !     Push failed

据我所知,我认为我需要更新捆绑软件,因此我将捆绑软件更新为1.15.2版,并尝试再次将其推上去,但是显示了相同的错误。 我的gemfile.lock甚至说BUNDLED WITH 1.15.2

我有什么想念的吗?

ruby-on-rails git heroku bundler
回答

我联系了Heroku,他们向我展示了我有多个buildpack:

感谢您就安装红宝石方面的问题与我们联系。 似乎该应用程序为Ruby指定了两次Heroku Buildpack,而后者指定了主版本,而不是发行版本:

$ heroku buildpacks -a app-name
=== app-name Buildpack URLs
1. heroku/ruby
2. https://github.com/heroku/heroku-buildpack-nodejs.git
3. https://github.com/heroku/heroku-buildpack-ruby.git

然后,他们继续向我展示如何解决该问题:

您能否尝试一次指定每个buildpack以及使用发布的版本来查看问题是否持久?

$ heroku buildpacks:remove -i 3 -a app-name
$ heroku buildpacks:remove -i 2 -a app-name
$ heroku buildpacks:remove -i 1 -a app-name
$ heroku buildpacks:add heroku/nodejs -a app-name
$ heroku buildpacks:add heroku/ruby -a app-name
$ git push heroku master

这解决了一切!


回答

您是否将生成的Gemfile.lock检查到版本控制中

git add Gemfile.lock