本記事について
Herokuへのデプロイ時に二つのエラーで時間が取られたので備忘にとして書きました。
1つ目
remote: ! The Ruby version you are trying to install does not exist on this stack.
remote: !
remote: ! You are trying to install ruby-2.6.5 on heroku-20.
remote: !
remote: ! Ruby ruby-2.6.5 is present on the following stacks:
remote: !
remote: ! - cedar-14
remote: ! - heroku-16
remote: ! - heroku-18
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
エラー文詳細
当初、使用していたStackが20。(アカウント作成してから初めてデプロイしたのでデフォルトが20だったと考えられる)
エラー文には「rubyの2.6.5がサポートされているherokuのstackが18までであり20は対応していない」と書かれている。
解決までの手順
Herokuのインストール
$ brew tap heroku/brew && brew install heroku
Herokuのログイン
$ heroku login
stackを18にダウングレード
$ heroku stack:set heroku-18 -a blogapp
最後にbundle install
で完了。
2つ目
remote: Your bundle only supports platforms ["x86_64-darwin-20"] but your local platform
remote: is x86_64-linux. Add the current platform to the lockfile with `bundle lock
remote: --add-platform x86_64-linux` and try again.
remote: Bundler Output: Your bundle only supports platforms ["x86_64-darwin-20"] but your local platform
remote: is x86_64-linux. Add the current platform to the lockfile with `bundle lock
remote: --add-platform x86_64-linux` and try again.
エラー文詳細
直訳
「バンドルはプラットフォーム["x86_64-darwin-20"]のみをサポートしていますが、あなたのローカルプラットフォームはx86_64-linuxです。
bundle lock --add-platform x86_64-linux
でロックファイルに現在のプラットフォームを追加して、もう一度試してみてください。」
解決方法
エラー文通り新たなプラットフォーム「x86_64-linux」
をgemfile.lock
に追加することで解決。
解決までの手順
プラットフォームを追加
$ bundle lock --add-platform x86_64-linux
$ git add .
$ git commit -m 'Add platform'
最後にbundle install
で完了。
(コミット忘れずに)
以上