Skip to content
Latchkey

マルチステージビルドとは?

マルチステージビルドとは、複数のビルドステージを定義するDockerfileの手法で、後のステージが前のステージから必要な成果物だけをコピーします。フルなツールチェーンを備えた大きなbuilderステージでコンパイルし、その結果生成されたバイナリだけを最小限の最終イメージにコピーできます。結果として、ビルド時の肥大化のない、小さくクリーンなランタイムイメージが得られます。

なぜ重要か

コンパイラ、ビルドツール、中間ファイルを最終イメージに含めると、イメージが肥大化し攻撃対象領域が広がります。マルチステージビルドはビルド依存関係をランタイムイメージの外に保ち、より小さく、pullが速く、より安全なイメージを生み出します。多くの場合、最終ベースにdistrolessを組み合わせます。

関連する概念

  • 最終ステージは必要な成果物だけをコピーする
  • distrolessのbase imageと相性が良い
  • イメージサイズと攻撃対象領域を削減する

関連ガイド