多_MODULE
ソフトウェア開発 - ビルドとCI/CD

多段階ビルド

コンテナイメージのサイズを最適化するために、ビルドに必要な依存関係と実行時の環境を分離し、最終的な成果物のサイズを削減するとともに、デプロイメントの効率を向上させます。

Medium
DevOpsエンジニア
Technicians examine a large holographic display showing complex data visualizations in a server room.

Priority

Medium

Execution Context

マルチステージビルドは、1つのファイル内で複数のステージを利用することで、より軽量なDockerイメージを作成することを可能にします。最初のステージでは依存関係とソースコードをコンパイルし、その後のステージでは必要なファイルのみをコピーします。この手法により、最終的なイメージから不要なライブラリやバイナリが削除され、ストレージコストを大幅に削減し、本番環境におけるコンテナの起動時間を高速化することができます。

Dockerfileにおいて、コンパイル処理と実行時要件を分離するために、複数のビルドステージを定義します。

各段階を順番に実行し、次の段階へは必要なファイルのみを移行してください。

最小限のアーティファクトのみをコピーし、外部依存関係のないベースイメージに組み込むことで、イメージの最終化を行います。

Operating Checklist

初期コンパイル段階において、公式のベースイメージを使用してFROMディレクティブを作成してください。

この隔離された環境内で、ビルドツールをインストールし、アプリケーションコードをコンパイルしてください。

次のステージに向けて、最小限のランタイムイメージを持つ、2つ目のFROMディレクティブを開始します。

コンパイルされたバイナリファイルまたは静的アセットのみを、ソースファイルを含まない状態で最終段階にコピーしてください。

Integration Surfaces

Dockerfileの設定

ビルドファイルを構成し、`FROM`指示を用いて明確なステージを定義し、`COPY`コマンドを適切に使用してください。

パイプライン実行の構築

各ステージが一時ファイルを引き継がずに正常に完了することを確認するため、CI/CDランナーを監視します。

画像サイズ検証

Docker inspectコマンドまたはサードパーティ製のツールを使用して、シングルステージビルドと比較した際のイメージのサイズ削減効果を測定してください。

FAQ

Bring 多段階ビルド Into Your Operating Model

Connect this capability to the rest of your workflow and design the right implementation path with the team.