動機 リモート環境をAmazon ECSにし、ローカル環境もDockerで構築していましたが、このときDockerfileの運用に悩みました。ローカル環境とリモート環境では、コンテナ化したいものが違ったからです。 ローカル環境 主にランタイムをコンテナ化したい 手元のIDEでコーディングしたいので、コードはミュータブルで良い リモート環境 アプリケーションも含めてコンテナ化したい コードは書き換えられなくて良い 上記のような欲求のため、Dockerfileを分けていましたが、管理が複雑になってきたため一つにまとめたいと思いました。 TL;DR マルチステージビルドでリモート環境とローカル環境を分ける FROM句を複数書くやり方 共通な部分とローカル環境・リモート環境で分けるものを別々で記載すると良い マルチステージビルドを使う 概要 上記の課題を解決するため、Dockerのマルチステージビ