Skip to content
Latchkey

Dockerレイヤーキャッシュとは?

レイヤーキャッシュとは、Dockerfileの各命令がキャッシュ可能なレイヤーを生成し、そのレイヤーまたはそれ以前の何かが変わった場合にのみレイヤーが再ビルドされる、コンテナビルドの最適化です。変更のないレイヤーはキャッシュから再利用されるため、アプリケーションコードを編集してもすべての依存関係の再インストールは強制されません。安定したステップを先に来るようDockerfileを並べると、キャッシュヒットが最大化されます。

なぜ重要か

レイヤーキャッシュがないと、イメージビルドのたびにすべての依存関係をゼロから再インストールすることになり、遅く無駄が多くなります。エフェメラルなCI runnerではローカルのレイヤーキャッシュが消えるため、チームはリモートのレイヤーキャッシュ(またはレジストリバックのキャッシュ)を使い、新しいrunnerでも恩恵を受けられるようにします。マネージドのrunnerプラットフォームはこのキャッシュを提供することが多いです。

関連する概念

  • キャッシュヒットのためDockerfileのステップを安定的なものから変動的なものへ並べる
  • エフェメラルなrunnerにはリモートのレイヤーキャッシュが必要
  • build cacheのコンテナ版に相当する

関連ガイド