背景
Heroku push時にbundler関係でエラー発生したのでメモ。
rbenv versions:
system
2.3.1
2.3.7
* 2.5.0 (set by /Users/hogehoge/rails/weaver/.ruby-version)
2.5.1
エラー内容
vendor/ruby/heroku-18/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)
たまにこのエラー見る。bundlerインストールで解決できたようなと思いながら、ググると、、
下記の記事がヒットしました!エラー内容似てる!
https://qiita.com/sshuuu/items/213b4e82167317e1ebb3
この記事によると、Gemfile.lockに記載されているBUNDLE_WITHのバージョンがインストールされているbundlerのバージョンと異なっていることが原因とのこと。
なるほど。調べてみる。
bundler-v:
Bundler version 2.0.2
Gemfile.lock
BUNDLED WITH
2.0.2
え、、違わないんだが、、。どういうこと、、。
かなりハマりましたが、結論をいうとGemfile.lockに記載されているBUNDLE_WITHのバージョン2.0.2を手動で、1.17.3に変更。
次にバージョン1.17.3のbundlerをインストール。
あとは、下記の流れで、もう一度herokuにpushで解決できました!
Gemfile.lock
BUNDLED WITH
1.17.3
gem install bundler -v '1.17.3'
bundle install
git add -A
git commit -m "hoge"
git push
git push heroku master
Gemfile.lockは基本的に触らないものと考えていたので、手動で変更させることになかなか気がつきませんでした。
参考になれば幸いです。