
Dockerのマルチステージビルドで特定のステージを指定する方法
Dockerのマルチステージビルド(Multi-stage builds)で複数のステージを用意する場合があります。
マルチステージビルドを使うことで、一つのDockerfile内で複数のビルドステージを管理し、最終的なイメージサイズを小さく保つことができます。
今回はstaging, production環境でステージを分けてビルドしたいということがありました。 最初は複数のDockerファイルを用意しようと思いましたが、コピペの嵐になってメンテナンスが地獄になることが予想できていました…。
調べたところDocker Buildには --target
オプションというものがあり、ステージを指定してビルドできます。
Specifying target build stage (–target)
|
|
こんな感じのDockerfileがある場合に、ステージング環境のステージをビルドしたい場合は以下のようにします。
|
|
まじで知らなかった…。