はじめに
既存railsアプリをDockerに切り替える時に起きた問題になります。
正確には下のコマンドのようにビルドしようとした時に起きる問題です。
$ docker-compose build
発生したエラーメッセージ
$ docker-compose build
・
・
・
Step 9/10 : RUN bundle install
---> Running in 11137a2dced0
You must use Bundler 2 or greater with this lockfile.
ERROR: Service 'web' failed to build: The command '/bin/sh -c bundle install' returned a non-zero code: 20
はまったこと
You must use Bundler 2 or greater with this lockfile.
(このロックファイルではbundler2以上を使用する必要がある)
と言われているのにbundlerのバージョンは2以上を使用しているという件。
ここで本気ではまりました。
bundlerの2.0.1がよくなかったらしいです。
なので、バージョンを下げて行います。
1系のbundlerをインストールします。
解決するために行う手順
- bundle installの前にまずはバージョン指定をしてbundlerをインストールするように書く
dockerfile
RUN gem install bundler -v 1.3.0
RUN bundle install
- Gemfile.lockを空にする
-
docker-coompose build
を行う
これでエラーを解決できました。
振り返り
You must use Bundler 2 or greater with this lockfile.
今回はこのメッセージに振り回されました。
解決策を見つけるのに時間がかかったため、記事にしたいと思い作成しました。
色々とググることでありつけたので、もっとググり力と問題解決力をつけて成長できるように頑張ります。