HerokuでRailsをビルド buildpack、Rubyバージョンでエラー
2019.02.13
この記事は最終更新日から1年以上が経過しています。
環境:Rilas5.2.2
OS:Mac
本当に久々に、HerokuにRailsアプリをビルドしてみると以下のエラー。
remote: -----> Ruby app detected remote: remote: ! remote: ! You must use Bundler 2 or greater with this lockfile. remote: ! remote: /tmp/d20190210-204-z40sr6/bundler-1.15.2/gems/bundler-1.15.2/lib/bundler/lockfile_parser.rb:108:in `warn_for_outdated_bundler_version': You must use Bundler 2 or greater with this lockfile. (Bundler::LockfileError)
ふむふむふむ。
よくわからん。
とりあえず、heroku buildpacks を「https://github.com/heroku/heroku-buildpack-ruby.git」のURLにsetしろよ。
と、言われているのはわかる。
なので、下記のコマンド入力でset
$ heroku buildpacks:set https://github.com/heroku/heroku-buildpack-ruby.git
再度、Herokuにデプロイ。
$ git push heroku master
すると、以下のエラー。
remote: -----> Ruby app detected remote: -----> Compiling Ruby/Rails remote: Command: '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/heroku-18/ruby-2.3.7.tgz -s -o - | tar zxf - ' failed on attempt 1 of 3. remote: Command: '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/heroku-18/ruby-2.3.7.tgz -s -o - | tar zxf - ' failed on attempt 2 of 3. remote: remote: ! remote: ! An error occurred while installing ruby-2.3.7 remote: ! remote: ! This version of Ruby is not available on Heroku-18. The minimum supported version remote: ! of Ruby on the Heroku-18 stack can found at: remote: ! remote: ! https://devcenter.heroku.com/articles/ruby-support#supported-runtimes remote: !
なるほどなるほど。
よくわからん。
とりあえず、Rubyのバージョンが古くてサポートしているruntimeのバージョンが違うよー。
とのことぽいので、以下を確認。
https://devcenter.heroku.com/articles/ruby-support#supported-runtimes
現在、サポートしているバージョンは画像のとおり。
rbenvで使用しているRubyのバージョン確認。
$ rbenv versions 2.3.1
なんと。
もうこんなに古いのか。
rbenv と、ruby-buildをアップグレード。
$ brew upgrade rbenv ruby-build
とりあえず、2.6.1をインストール。
$ rbenv install 2.6.1
ローカルのバージョンも2.6.1にセット。
$ rbenv local 2.6.1
Rubyのバージョン確認。
ruby -v ruby 2.6.1p33 (2019-01-30 revision 66950) [x86_64-darwin18]
よし。
つい先日にビルドされたピカピカのバージョンになった。
再度、bundle install
$ bundle install
これで問題ないだろう。
再度、Herokuにデプロイ。
$ git push heroku master
remote: -----> Ruby app detected remote: -----> Compiling Ruby/Rails ...
再度、同じエラー。。。
え。。
後何がおかしい??
heroku buildpackを以下に変更してみる。
heroku-buildpack-rubyをフォークしているブランチになります。
$ heroku buildpacks:set https://github.com/bundler/heroku-buildpack-bundler2
node.jsでのタスクも必要となってきたので、ついでに以下をbuildpackの1番目に追加。
$ heroku buildpacks:add --index 1 heroku/nodejs
heroku buildpacksを確認してみる。
$ heroku buildpacks 1. heroku/nodejs 2. https://github.com/bundler/heroku-buildpack-bundler2
これで、準備万端。
再度、実行。
remote: -----> Ruby app detected remote: -----> Compiling Ruby/Rails ...
再度、同じエラー。。。
もうわかんない。。
と、途方にくれそうになっていた時、
「あ!そうえいえば!!」
そう、GemfileのRubyを変更していないのに気が付きました。
Gemfile ruby '2.6.1'
再度実行。
$ git push heroku master
問題なく、デプロイできました。
最後で凡ミスのオチでした。