Gemfileを更新したときに、docker compose buildしなおす理由と回避

更新: 2024/06/02, 作成: 2024/06/02

みなさんこんにちは、かじりです。Gemfileを更新したときに、docker compose buildしなおす理由と回避をまとめました

この記事1によると、Gemfileが変わったからそこからbuildしなおすのが理由。うろ覚えだけど、確かコマンドごとにレイヤーみたいなものがつくられるはずで、差分が検知されるとそれ以降のコマンドはやり直しだった気がする。

この記事2によると、volumeにbundlerの結果を配置すれば良い。

なので以下のように、volumeを設定し、bundle installすれば良い

services:
  app:
    volumes:
      - bundle:/myapp/vendor/bundle
volumes:
  bundle:
RUN bundle config set path 'vendor/bundle' && bundle install

脚注

  1. https://qiita.com/mom0tomo/items/2e7f7c2dbe2855b2c91d

  2. https://qiita.com/neko-neko/items/abe912eba9c113fd527e