コンテンツへスキップ
uencoder

Multi-Stage Build

マルチステージビルドはDockerfile内で複数のFROMステージを使い、最終ステージが必要な成果物だけをコピーしてイメージを小型化する。

目的

最終イメージを小型化し、ビルド時環境と実行時環境を分離する。

メカニズム

ビルドステージでコンパイラと依存関係をインストールして成果物をビルドする。最終ステージは最小ベースイメージ(alpine/distroless)を使い、成果物だけをCOPYする。ビルドツール、ソースコード、中間ファイルを排除する。

ユースケース

  • イメージの最適化
  • アタックサーフェスの縮小
  • Dockerのベストプラクティス

関連用語

References