【Heroku/Rails】デプロイで起こる「Could not find 'bundler' 」の解決法

RailsのアプリケーションをHerokuにデプロイしようとすると長文で出てくるエラーがあります。
「Could not find 'bundler' (2.0.1)~」
このエラーパッと見はややこしそうに見えますが案外楽々解消することができたりします。今回はその解消法を紹介していきます。

超簡単!「Could not find 'bundler' (2.0.1)」解決方法を紹介!!

なかなかややこしいと思われがちですが、実はこのエラーrubyとbundlerのバージョンを変えてくださいという単なるバージョン管理についてのメッセージです。
1つ1つコードを実行していけば解消できるので一緒に見ていきましょう~※ちなみにこの解決法はmac + rbenv環境であることが条件です

▶︎手順①:Homebrewのアップデートとrubyの構築

タイトルの通りバージョンをあげる前にHomebrewのアップデートとrubyの構築を行います。

$ brew update && brew upgrade ruby-build

これで環境設定は完了しました。それでは次からrubyとbundlerのバージョンを上げていきます。


▶︎手順②:rubyバージョンインストール

rubyのバージョンをインストールします。

$ rbenv install 2.6.3

これを実行することでrubyの2.6.3が使えるようになります。
※今回は2.6.3にしていますが状況によって変わります

▶︎手順③:rubyのバージョンをローカル環境でも適用させる

続いてインストールしたrubyのバージョンをローカル環境でも適用させて完全にバージョンを上げます。

$ rbenv local 2.6.3

rubyのバージョン上げは完了です。


▶︎手順④:bundlerのバージョンインストール

rubyに続いてbundlerのバージョンも上げます。

$ gem install bundler -v 2.0.2
$ rm Gemfile.lock

こちらのコードでbundlerインストールとGemfile.lockの記載を削除します。


▶︎手順⑤:Gemfile全体のインストール

rubyとbundlerのバージョンを上げたためGemfileの内容をインストールします。

$ bundle install

これでバージョン上げは完了です。


▶︎手順⑥:リポジトリへの反映とデプロイ

このコードは普通にデプロイする時の手順です。

$ git add .ruby-version Gemfile Gemfile.lock
$ git commit -m 'version up ruby'
$ git push heroku master

以上で正常に動作すると思います。


▶︎まとめ

今回の手順で解決できたかはさて置き、Railsを扱う上でエラーから逃れることはできません。
ぶつかったエラーには必ず解決法があるため諦めずに解消していきましょう。また、自力で解決できたエラーについては他の人にシェアすると自分だけでなくたくさんの人のためになります。
エラー解決は未知の領域を開拓するという考えですると案外取り組めたりするので、前向きに頑張りましょう!

NEXT

railsエラー railsローカル開発 railsエラー railsローカル開発