eitro22
@eitro22 (toi yosito)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

git push heroku master を実行した際のエラー

Herokuでアプリ公開の際に”git push heroku master” を実行すると

remote: !
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
remote: !
remote: ! Push rejected, failed to compile Ruby app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to pure-falls-68473.
remote:
To https://git.heroku.com/pure-falls-68473.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/pure-falls-68473.git'

上記エラーが発生します。
わかる方がいたら宜しくお願いします。
写真も添付しておきます。
IMG_2127.PNG

0

1Answer

! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/pure-falls-68473.git'

最後のエラーメッセージを見ると、pre-receive hook によって拒否されたとあります。

Heroku 側で pre-receive hook を使って、取り込む前に問題ないかを確認しているのだと思います。

なぜ拒否されたのか、その上のエラーメッセージを見てみると

The Ruby version you are trying to install does not exist on this stack.

インストールしようとしているRubyバージョンはこのスタックに存在しません。

You are trying to install ruby-2.6.5 on heroku-20.

heroku-20にruby-2.6.5をインストールしようとしています。

Ruby ruby-2.6.5 is present on the following stacks:

Rubyruby-2.6.5は次のスタックに存在します。

  • cedar-14
  • heroku-16
  • heroku-18

Heroku recommends you use the latest supported Ruby version listed here:

Herokuでは、サポートされている最新のRubyバージョンを使用することをお勧めします。

For more information on syntax for declaring a Ruby version see:

Rubyバージョンを宣言するための構文の詳細については、以下を参照してください。

つまり、heroku-20 で ruby-2.6.5 を使おうとしているけど Ruby のバージョンが古いからダメ、と言われているわけですね。

一番簡単な対策は、使用する Ruby のバージョンを上げることだと思います。

2Like

Comments

  1. @eitro22

    Questioner

    rubyのバージョンを上げてできました!

    remote: !
    remote: ! Failed to install gems via Bundler.
    remote: !
    remote: ! Push rejected, failed to compile Ruby app.
    remote:
    remote: ! Push failed
    remote: !
    remote: ! ## Warning - The same version of this code has already been built: e428d83455f36ea77681917c730c93db7bf17de1
    remote: !
    remote: ! We have detected that you have triggered a build from source code with version e428d83455f36ea77681917c730c93db7bf17de1
    remote: ! at least twice. One common cause of this behavior is attempting to deploy code from a different branch.
    remote: !
    remote: ! If you are developing on a branch and deploying via git you must run:
    remote: !
    remote: ! git push heroku <branchname>:main
    remote: !
    remote: ! This article goes into details on the behavior:
    remote: ! https://devcenter.heroku.com/articles/duplicate-build-version
    remote:
    remote: Verifying deploy...
    remote:
    remote: ! Push rejected to pure-falls-68473.
    remote:
    To https://git.heroku.com/pure-falls-68473.git
    ! [remote rejected] master -> master (pre-receive hook declined)
    error: failed to push some refs to 'https://git.heroku.com/pure-falls-68473.git'

    新たにエラーが出ました、、

    アドバイスを頂けると幸いです。
  2. 同じソースコードでビルドを少なくとも2回実行している、と言っていますね。

    もしかしたら、同じことを2回実行したのではないでしょうか?
  3. @eitro22

    Questioner

    間違えてしたかもしれないです、、、

    対処方はありますか??
  4. 上の画像を見直してみましたが、

    git push heroku master

    で push していますよね?

    エラーメッセージを見ると

    git push heroku <branchname>:main

    で push しろ、と書いてあります。
    (heroku 側のブランチが master ではなく main になっているみたいです)

    git push heroku master:main

    とやってみてもらえますか
  5. @eitro22

    Questioner

    MacBook-Pro as_app % git push heroku master:main
    Enumerating objects: 7407, done.
    Counting objects: 100% (7407/7407), done.
    Delta compression using up to 8 threads
    Compressing objects: 100% (5984/5984), done.
    Writing objects: 2% (173/7407), 1.07 MiB | 363.00 KiB/s
    Writing objects: 2% (178/7407), 5.49 MiB | 7.00 KiB/s
    Writing objects: 2% (178/7407), 6.49 MiB | 7.00 KiB/s
    Writing objects: 2% (178/7407), 9.24 MiB | 8.00 KiB/s
    Writing objects: 100% (7407/7407), 28.66 MiB | 8.00 KiB/s, done.
    Total 7407 (delta 943), reused 7407 (delta 943)
    remote: Compressing source files... done.
    remote: Building source:
    remote:
    remote: -----> Building on the Heroku-18 stack
    remote: -----> Determining which buildpack to use for this app
    remote: ! Warning: Multiple default buildpacks reported the ability to handle this app. The first buildpack in the list below will be used.
    remote: Detected buildpacks: Ruby,Node.js
    remote: See https://devcenter.heroku.com/articles/buildpacks#buildpack-detect-order
    remote: -----> Ruby app detected
    remote: -----> Installing bundler 2.2.11
    remote: -----> Removing BUNDLED WITH version in the Gemfile.lock
    remote: -----> Compiling Ruby/Rails
    remote: -----> Using Ruby version: ruby-2.6.6
    remote: -----> Installing dependencies using bundler 2.2.11
    remote: Running: BUNDLE_WITHOUT='development:test' BUNDLE_PATH=vendor/bundle BUNDLE_BIN=vendor/bundle/bin BUNDLE_DEPLOYMENT=1 bundle install -j4
    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.
    remote:
    remote: !
    remote: ! Failed to install gems via Bundler.
    remote: !
    remote: ! Push rejected, failed to compile Ruby app.
    remote:
    remote: ! Push failed
    remote: !
    remote: ! ## Warning - The same version of this code has already been built: e428d83455f36ea77681917c730c93db7bf17de1
    remote: !
    remote: ! We have detected that you have triggered a build from source code with version e428d83455f36ea77681917c730c93db7bf17de1
    remote: ! at least twice. One common cause of this behavior is attempting to deploy code from a different branch.
    remote: !
    remote: ! If you are developing on a branch and deploying via git you must run:
    remote: !
    remote: ! git push heroku <branchname>:main
    remote: !
    remote: ! This article goes into details on the behavior:
    remote: ! https://devcenter.heroku.com/articles/duplicate-build-version
    remote:
    remote: Verifying deploy...
    remote:
    remote: ! Push rejected to pure-falls-68473.
    remote:
    To https://git.heroku.com/pure-falls-68473.git
    ! [remote rejected] master -> main (pre-receive hook declined)
    error: failed to push some refs to 'https://git.heroku.com/pure-falls-68473.git'

    こうなりました!!
  6. エラーメッセージを見ると

    Your bundle only supports platforms ["x86_64-darwin-20"] but your local platform is x86_64-linux.
    Add the current platform to the lockfile with `bundle lock --add-platform x86_64-linux` and try again.

    とあります。

    bundle が "x86_64-darwin-20" 、つまり Mac 用を指定しているけど、Heroku 側は Linux なので動かせないよ、と言っていますね。

    そのあとのエラーメッセージに書いてある通り

    bundle lock --add-platform x86_64-linux

    を実行して、変更されたファイル(多分 Gemfile.lock)をcommitして、pushし直せばよいと思います。

    基本的に、エラーメッセージに原因(と対策)が書いてあるので、まずはエラーメッセージを読んでみるとどう対策すればわかると思います。

Your answer might help someone💌