Dockerfileで特定のRUN以降のキャッシュを無効にする

docker buildでキャッシュを使わないようにするときには、–no-cacheをつければ良いけど、開発時にこまめにdocker buildしたいときにベースパッケージのインストールなど、開発に関係ないところはキャッシュを使いたいケースなどがある。なので、特定のRUN以降はキャッシュを無効にするにはどうするのが良いかを考えると、単純にARGで毎回変わるようにしておけばよい。

Dockerfileにはキャッシュを無効にしたい箇所で

ARG CACHEBUST=1
RUN git clone ...

みたいにARGを加えて、docker build時には

$ docker build -t tagname --build-arg CACHEBUST=$(date +%s) .

という感じで、–build-argオプションで日付とかで毎回変わるように値を入れておけばよい。

コメントを残す

メールアドレスが公開されることはありません。