Docker のキャッシュは mtime ベースっぽい
タイトルそのまんま。
Dockerfile
ではすでに ADD
したファイルの追加なんかはキャッシュされるのでスキップされる
# Dockerfile FROM ubuntu ADD text text
こんな感じの Dockerfile
があったとして、これを2回ビルドすると、2回めの時には
Step 1 : ADD text text ---> Using cache ---> 9839a3ce35ab
みたいな表示になって、キャッシュの内容が使われる。
この後に touch text
をすると
Step 1 : ADD text text ---> a4f64ca64ba7
てな具合に Using Cache
がなくなって、またビルドが実行される。
ローカルだとほぼ問題ない挙動なんだけど、 CI 上でコンフィグを書き出してたりとかするとハマることがおおい(僕は s3cmd の sync ではまった)。
お気をつけて。