結論
- herokuとローカル環境での
bundler
のversionを合わせる -
bundle lock --add-platform x86_64-linux
を実行する
やったこと
まずはエラー文を読み、
remote: Your bundle only supports platforms ["x86_64-darwin-19"] 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.
とあったので、 bundle lock --add-platform x86_64-linux
を実行するが、エラーが出た。
Failed to install gems via Bundle.
でググると、「herokuとローカル環境でのbundler
のversionがあっていないことが原因だった」という記事を見つけたので、herokuのbundlerのバージョンと、ローカルのバージョンを確認する。
herokuで使っているバージョンは
$ git push heroku
を実行したときに表示されていた
remote: -----> Ruby app detected
remote: -----> Installing bundler 2.2.16
remote: -----> Removing BUNDLED WITH version in the Gemfile.lock
remote: -----> Compiling Ruby/Rails
remote: -----> Using Ruby version: ruby-3.0.1
のInstalling bundler 2.2.16
らしい。
ローカルでのバージョン確認は
$ bundler -v
Bundler version 2.2.17
herokuは2.2.16
、ローカルは2.2.17
でバージョンが違うかった。
いったんGemfile.lock
を削除
$ rm gemfile.lock
次にherokuとバージョンを合わせたbundlerをインストール
$ bundle _2.2.16_ install --without production
それから
$ bundle lock --add-platform x86_64-linux
で
$ git add .
$ git commit -m 'bundlerのバージョン変更'
$ git push heroku
いけました。
まとめ
最近エラーが出ても耐性がついてきた。特にRailsは日本語の記事がたくさんあり、だいたいエラー文で調べれば出てくることが多いような気がします。