広告スペース(バナー)
🐳Docker レッスン
Dockerの基本を知ろう5▾
コンテナの起動と管理6▾
コンテナのライフサイクル操作5▾
コンテナとのやり取り6▾
リソース監視とファイル操作3▾
Dockerfileを書いてみよう6▾
イメージのビルドと共有5▾
レッスン 37 / 45
マルチステージビルドとは?
「ビルドに必要なツールと、実際にアプリを動かすのに必要なものを分けたい」というときに使うのがマルチステージビルドです。1つのDockerfileの中に複数のFROMを書き、ビルド専用の環境と、実行専用の軽量な環境を分ける手法です。
FROM node AS builderのように名前を付けたステージでビルドを行い、最後のステージでCOPY --from=builderを使い、ビルド成果物だけを軽量な実行用イメージにコピーします。
たとえばNode.jsでビルドしたファイルを、最終的にはnginxの軽量イメージだけに含めることで、ビルドツール一式を含まない、必要最小限のイメージに仕上げられます。
よくあるつまずきは、マルチステージビルドを使わずに全てを1つのイメージに詰め込み、本番用イメージにビルドツールやソースコード一式まで残ってしまい、サイズが肥大化することです。
実務では本番環境向けのイメージを軽量かつセキュアに保つための標準的なテクニックとして、フロントエンド・バックエンド問わず広く使われています。
Docker
試してみよう(疑似ターミナルへの入力例)
❯ docker build -t myapp .
🧑💻 このコマンドは Dockerの疑似ターミナル に実際に入力して試せます(このページ自体には操作可能なターミナルはありません)。
🎯
ここまでできればゴール達成!
ビルドとコンテナ実行の環境を分けて、軽量なイメージを作れるようになります。
ビルドとコンテナ実行の環境を分けて、軽量なイメージを作れるようになります。
広告スペース(バナー)
広告スペース(記事内)