昨日は神@pikatenorくんの記事で、「マイクロサービス時代のセッション管理」でした。Retty広告コンテンツ部門でサーバーサイドの開発を担当している堤です。最近はインフラ管理の仕事も多くなり、AWSと格闘したりDockerと格闘したりしています。今回は、Dockerのbuildを手軽に高速化1してくれる2つのオプションについて、速度比較を行いました。概要説明Dockerには、並列buildを実現するためのオプションが2種類存在します。片方は、docker-composeの--parallelオプションで、もう一つはBuildKitの並列buildです。今回は、こちらの2つのオプションについて速度比較を行いました。結果としては、オプションなしと比較して、parallelオプションで24%減、BuildKitで30%減の実行時間短縮となりました。両方のオプションを使った場合は39%減の時間短縮となりました。今回対象とするDockerfileは5つで、並列build可能となっています。buildsを複数利用しているため、BuildKitの並列buildの恩恵を受けられるようになっています。imageを最大5つまで並列でbuildしてくれます。パッケージインストールやコンパイル等においてローカルのcacheを使えるなど複数の有用な機能があります。今回の検証は、Dockerfileの並列buildのみを対象としています。0.61BuildKitと--parallelの比較では、若干BuildKitの方が速くなっています。BuildKitと--parallelの組み合わせは有効なようで、build時間を2/3まで落とすことができました。今回の結果は、あくまで弊チームにおけるDockerのbuild構成に基づく結果となります。imageの依存関係やDockerfileの書き方、スペックやその他処理内容により、上記の比較結果は異なります。#1での移行が上手くいったのか楽しみですね。