2019.03.21ビルド職人の朝は早い、、、というわけで、前回に続きでCodeBuildのノウハウです。CodeBuildに限った話じゃないものもありますし、Docker使う場合だけの話もあります。計測したわけではないので、軽く試してみて良かったら使うくらいのノリでお願いします。使う.dockerignoreを使うまとめCodeBuildのキャッシュをうまく使うmoyashidaisuke.hatenablog.comDockerのキャッシュをうまく使うオフィシャルのドキュメントに色々書いてあるのですが、一例を、、docs.docker.com↑に関連してですが、例えば、以下のようなDockerFileがあったとします。443Dockerのcacheは上から順番にしていって、差分が発生せいた時点で以降はすべてcacheが無効になります。ほとんどの場合前回と差分があるはずなので(ファイルのchecksumで差分扱いにしてくれる)、以降はcacheが効かなくなります。こんな感じで差分が発生しなさそうな処理をできるだけ最初の方に(逆に言うと差分が発生しそうな処理はできるだけ後の方に)やるとcacheが効きやすくなります。443alipneを使う軽いは正義(ダウンロード、アップロードの速度、メモリ、ECRのストレージ等、色々効いてくる)なので、alpineを使ってなければalpineに変更しましょう。使っていて複数コンテナを扱っているのであれば、parallelオプションを試してみましょう。複数コンテナのbuildを並列でやってくれます。.dockerignoreを使う.dockerignoreファイルを使うと、COPYする時に不要なフォルダを除外できます。node_modulesとかvendorとかが不要なコンテナの場合は、COPY処理の高速化とコンテナサイズの縮小が望めます。まとめ公式ドキュメントをよく読むと色々ノウハウが載ってます。ログと合わせて、ちゃんと読むと色々対応方法がありそうです。