Multi-Stage Build docs.docker.com Docker の 17.05 (ce) から multi-stage build 機能が追加されました。 multi-stage build とは、ベースイメージを複数利用し、多段階で build を行う機能です。 利用シーンはビルド環境とランタイム環境の分離が挙げられます。 ビルド環境とランタイム環境を分けるとランタイムがネイティブである Go のような言語では Docker image を劇的に小さくすることができます。 golang の ベースイメージは 数百 MB ありますが、alpine のような 軽量 Linux イメージ単体では 数 MB のため、効果としては 90 % 以上のダイエットに繋がります。 Docker image サイズを小さくするメリットや、一般的なプラクティスについてはページ下部のリンクが非
![Docker の multi-stage build で golang の 軽量 image を作る - Memento memo.](https://cdn-ak-scissors.b.st-hatena.com/image/square/4ba54de4919b8f951ab766fb3d3d76b3b4a4793b/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fs%2Fshotat_jp%2F20170805%2F20170805214939.png)