※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。
Herokuにデプロイするとエラーが起こる
前回、デプロイ画面まで進んだもののエラーが続いたため、備忘録としてエラー解消方法を残しておく
ruby 2.7.7
Rails 6.0.6.1
MacOS sonoma14.5
エラー内容
Deploy Branchした際におきたエラー
-----> Building on the Heroku-22 stack
-----> Determining which buildpack to use for this app
! Warning: Multiple default buildpacks reported the ability to handle this app. The first buildpack in the list below will be used.
Detected buildpacks: Ruby,Node.js
See https://devcenter.heroku.com/articles/buildpacks#buildpack-detect-order
-----> Ruby app detected
-----> Installing bundler 2.3.25
-----> Removing BUNDLED WITH version in the Gemfile.lock
-----> Compiling Ruby/Rails
Command: 'set -o pipefail; curl -L --fail --retry 5 --retry-delay 1 --connect-timeout 3 --max-time 30 https://heroku-buildpack-ruby.s3.us-east-1.amazonaws.com/heroku-22/ruby-2.7.7.tgz -s -o - | tar zxf - ' failed on attempt 1 of 3.
Command: 'set -o pipefail; curl -L --fail --retry 5 --retry-delay 1 --connect-timeout 3 --max-time 30 https://heroku-buildpack-ruby.s3.us-east-1.amazonaws.com/heroku-22/ruby-2.7.7.tgz -s -o - | tar zxf - ' failed on attempt 2 of 3.
!
! The Ruby version you are trying to install does not exist on this stack.
!
! You are trying to install ruby-2.7.7 on heroku-22.
!
! Ruby ruby-2.7.7 is present on the following stacks:
!
! - heroku-20
!
! Heroku recommends you use the latest supported Ruby version listed here:
! https://devcenter.heroku.com/articles/ruby-support#supported-runtimes
!
! For more information on syntax for declaring a Ruby version see:
! https://devcenter.heroku.com/articles/ruby-versions
!
! Push rejected, failed to compile Ruby app.
! Push failed
chatGPTで翻訳すると
「あなたがインストールしようとしているRubyのバージョンは、このスタック(Heroku-22)上に存在しません。」とのこと
Heroku-22は最新のスタックで、公式のドキュメントを見てもruby 2.7.7はサポート対象外になっている
このエラーの解決策はふたつ
- rubyのバージョンをあげること
- スタックのバージョンを下げること
今回、デイトラの講義にそってデプロイするため、ruby 2.7.7のまま、スタックのバージョンを下げる
エラーの中で、ruby 2.7.7はheroku-20の対象だと教えてくれている
! Ruby ruby-2.7.7 is present on the following stacks:
!
! - heroku-20
解決方法
では、Heroku-22からHeroku-20へスタックのバージョンを下げいく
参考にしたのはこちらです
とても助かりました!
brew tap heroku/brew && brew install heroku
heroku login
# => heroku: Press any key to open up the browser to login or q to exit: (以下略)
上記のように指示があるので、q以外のキーを押す
ブラウザ画面が立ち上がるのでログインする
ログインできると、以下にメールアドレスも表示される
Logged in as
以下のコマンドに、Herokuで登録しているアプリ名を入れて実行する
heroku git:remote -a practice55app
heroku stack:set heroku-20
これでスタックの変更は完了!
#DAY26