最近は railsもdocker化するのが多くみられるのですが、ハマりポイントも多いみたいですね。
特にdocker-composeを使ったときには、キャッシュがかかってうまく修正反映できないことがあります。
エラーで怒られた。
例えば、既存のbundlerバージョンが合わなくて、bundler version 2.x
You must use Bundler 2 or greater with this lockfile.
というエラー。
dockerでrubyのイメージを使うときには、bundlerも一緒に入ってるわけですが、
その時に作った時のGemfileに書かれているBundlerバージョンと合わないことがあります。
#解決法
その時には、Gemfile.lockを削除してからgemライブラリ達をビルドし直す必要があります。
$ rm Gemfile.lock
$ sudo docker-compose build
$ sudo docker-compose up
この時に気を付けなければいけないのは、docker-compose buildを使うこと、
どうやら、docker buildとdocker-compose buildはキャッシュが別物みたいです。
なので、いくらDockerでビルドし直しても、docker-compose には反映されなくて詰みます
(私は数時間失いました)。
エラーも出ないが、反映もされないのでキャッシュトラブルはとてもややこしい。
参考
https://qiita.com/azul915/items/5b7063cbc80192343fc0
https://qiita.com/yoshijbbsk1121/items/87250501b32c6433943e