はじめに
herokuで初めてデプロイを行いましたが、ターミナルでgit push heroku masterを実行したところエラーが発生してしまったので、対処法を記事に残しておきたいと思います。
エラーの発生
ターミナル
git push heroku master
こちらのコマンドを実行したところ、以下のように「Failed to install gems via Bundler.」(上から1行目)と「error: failed to push some refs to〜」(1番最後の行)というエラーメッセージが出てしまいました。
ターミナル
〜省略〜
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: 620a93f164f06d54c43dc266f1589a3298f02e9a
remote: !
remote: ! We have detected that you have triggered a build from source code with version 620a93f164f06d54c43dc266f1589a3298f02e9a
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 ●●.
remote:
To https://git.heroku.com/●●.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/●●.git'
対処手順
最初に、現在入っているbundlerを削除します。
ターミナル
gem uninstall bundler
続けてbundlerのバージョン2.1.4を指定してインストールします。
ターミナル
gem install bundler -v '2.1.4'
次にやることはGemfile.lockを作り直しです。
テキストエディタから直接Gemfile.lockを削除し、ターミナルでbundle installを実行します。
ターミナル
bundle install
ここまでの変更をGitHubへ反映するため、GitHubを開き、commitとpushを行います。
そして再度git push heroku master実行してエラーが出なければ成功です。
ターミナル
git push heroku master