復習三回目(3,4を諦めたので)。
今回は、「Dockerビルドを速くする」方法を実装です。
記事で紹介されている方法は大きく4種類
(1)ツールをダウンロードする(ミラー)サイトを国内にする
AWSでの処理結果: オリジナル: 46秒 国内ミラー 48秒
SAKURAインターネットでの処理結果:オリジナル:64秒 国内ミラー:56秒
AWSでの性能差がほぼ無いのは、ネットワークの遅延が国内/国外であまり無いからでしょうか?
さくらインターネットでは、1割強の処理時間の改善がありました。
(2)ツールをキャッシュする、マルチステージビルドを利用する
コンテナで必要なファイル・ツールをコンテナ内にキャッシュする。
また、マルチステージビルドを使用して、最終のコンテナイメージを圧縮する。
(参考)「プログラマのためのDocker教科書第二版」・・p162
「Dockerによるアプリケーション開発環境構築ガイド」・・p059(multi stage機能について)
(3)Dockerfileのコマンドを集約し、途中のスナップイメージを作成しないようにする
コマンドラインを「&&」で連結し、途中のイメージ作成を回避する。
(参考)「プログラマのためのDocker教科書第二版」・・p168(Note:イメージのレイヤーについて)
「Dockerによるアプリケーション開発環境構築ガイド」・・p102当たりから記載あり
(4)/var/lib/dockerを,メモリー(tmpfs)にマッピングする
さくらインターネットで検証してみましたが、メモリー不足でエラーとなって検証できず。orz
(4)以外、なんとか終了です。
(参考)
1.
ソフトウェアデザイン-2018年12月号
2.
プログラマのためのDocker教科書第二版
3.
Dockerによるアプリケーション開発環境構築ガイド
今回は、「Dockerビルドを速くする」方法を実装です。
記事で紹介されている方法は大きく4種類
(1)ツールをダウンロードする(ミラー)サイトを国内にする
AWSでの処理結果: オリジナル: 46秒 国内ミラー 48秒
SAKURAインターネットでの処理結果:オリジナル:64秒 国内ミラー:56秒
AWSでの性能差がほぼ無いのは、ネットワークの遅延が国内/国外であまり無いからでしょうか?
さくらインターネットでは、1割強の処理時間の改善がありました。
(2)ツールをキャッシュする、マルチステージビルドを利用する
コンテナで必要なファイル・ツールをコンテナ内にキャッシュする。
また、マルチステージビルドを使用して、最終のコンテナイメージを圧縮する。
(参考)「プログラマのためのDocker教科書第二版」・・p162
「Dockerによるアプリケーション開発環境構築ガイド」・・p059(multi stage機能について)
(3)Dockerfileのコマンドを集約し、途中のスナップイメージを作成しないようにする
コマンドラインを「&&」で連結し、途中のイメージ作成を回避する。
(参考)「プログラマのためのDocker教科書第二版」・・p168(Note:イメージのレイヤーについて)
「Dockerによるアプリケーション開発環境構築ガイド」・・p102当たりから記載あり
(4)/var/lib/dockerを,メモリー(tmpfs)にマッピングする
さくらインターネットで検証してみましたが、メモリー不足でエラーとなって検証できず。orz
(4)以外、なんとか終了です。
(参考)
1.
ソフトウェアデザイン-2018年12月号
2.
プログラマのためのDocker教科書第二版
3.
Dockerによるアプリケーション開発環境構築ガイド