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