【解決】heroku-20 You are trying to install ruby-2.6.5 on heroku-20. The Ruby version you are trying to install does not exist on this stack.


「The Ruby version you are trying to install does not exist on this stack. heroku-20 You are trying to install ruby-2.6.5 on heroku-20. Ruby ruby-2.6.5 is present on the following stacks:cedar-14 heroku-16 heroku-18」とかいうエラーで、Rubyバージョン2.6.5のRails-appがHerokuにデプロイできない、、、

問題のエラー

解決策

  1. Rubyのバージョンを2.6.6か、2.7.2か、3.0.0に変更する
  2. またはherokuのstackを18に下げる

1.Rubyのバージョンを2.6.6か、2.7.2か、3.0.0に変更する

(例)Rubyのバージョンを2.6.6に変更する場合

1.Ruby 2.6.6 をインストール(以下をターミナルで実行)参考

$ brew update         // brewをアップデート
$ brew upgrade ruby-build         // ruby-buildをアップデート
$ rbenv install 2.6.6         // ruby2.6.6 をインストール
$ rbenv global 2.6.6         // ruby2.6.6 をローカルのデフォルトに設定

2..ruby-versionのバージョンを 2.6.6 に変更
3.GemfileのRubyバージョンを 2.6.6 に変更
4.再 bundle install

$ rm Gemfile.lock         // Gemfile.lockを削除
$ rm -rf venvor/bundle         // venvor/bundleを削除
$ bundle install --path vendor/bundle         // インストールするパスを指定してbundle install

5.git add から herokuデプロイまで 1コマンドで実行

$ git add .; git commit -m 'fix: ruby version'; git push heroku master

2.<追記>herokuのstackを18に下げる

ターミナルで、現在デプロイしようとしているアプリのディレクトリにいき、以下を実行

$ heroku login           // 実行後にエンターしてログイン
$ heroku stack:set heroku-18           // stackを heroku-18 に下げる
$ git push heroku master           // デプロイ 

参考

以上でデプロイできたはず!

原因

Herokuの公式サイトに、現在対応しているRubyのバージョンが記載されていた
対応していないRubyバージョンでデプロイしていたことが原因みたい

エラー文(テキストコピー)

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

https://qiita.com/___xxx_/items/bb85d26d50ff3940441c
https://qiita.com/wann/items/47983dad181e6df4c867
https://devcenter.heroku.com/ja/articles/getting-started-with-rails6