はじめに
Google Cloud Build では、ビルドの高速化のためにキャッシュ機能が提供されています。
cloudbuild.yaml において cache: true を設定することで、過去のビルド結果を再利用し、ビルド時間の短縮が図られます。
しかし、同じタグでイメージを更新するようなイメージを使用している場合、このキャッシュ機能が予期しない動作を引き起こすことがあります。
例)
解決方法
1. キャッシュを無効にする
キャッシュを使用しない設定を行うことで、常に最新のビルド結果を取得できます。以下のように cache: false を設定します:
steps:
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'your-image:latest', '.']
cache: false
これにより、毎回キャッシュなしでビルドが行われ、最新の内容が反映されます。
2. タグにユニークな識別子を付与する
コミットハッシュやビルド番号などのユニークな識別子をタグに付けることで、キャッシュの再利用を防ぎます。例えば、latest の代わりに以下のようにタグを設定します:
steps:
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'your-image:${COMMIT_SHA}', '.']
これにより、毎回異なるタグが付けられ、キャッシュが無効化されます。