Open3

BuildKitを有効化、無効化してコンテナをビルドした時にかかる時間を比較してみた

tommy34tommy34

https://docs.docker.com/build/buildkit/

If you have installed Docker Desktop, you don't need to enable BuildKit. If you are running a version of Docker Engine version earlier than 23.0, you can enable BuildKit either by setting an environment variable, or by making BuildKit the default setting in the daemon configuration.

23.0より新しいバージョンではBuildKitはデフォルトで有効化されている。

BuildKitを無効化するには DOCKER_BUILDKIT=0を指定する必要がある。 BuildKitを無効化してビルドするメリットはなく、BuildKitを使わないlegacy builderは将来的には削除される。

tommy34tommy34
$ sw_vers
ProductName:            macOS
ProductVersion:         14.4
BuildVersion:           23E214
$ docker --version
Docker version 27.2.0, build 3ab4256
tommy34tommy34

結果、legacy builderと比較してユーザ時間とシステム時間の両方で高速化され全体で約3倍速くなった。

$ time DOCKER_BUILDKIT=1 docker build --no-cache --quiet .
sha256:d5615e62650cdebfc3fba0b0e3dc3b0ff092e6dc1a7814b8cee2909c37dfb5a2

What's next:
    View a summary of image vulnerabilities and recommendations → docker scout quickview
docker build --no-cache --quiet -f .  4.90s user 32.07s system 17% cpu 3:32.74 total

$ time DOCKER_BUILDKIT=0 docker build --no-cache --quiet .
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
            BuildKit is currently disabled; enable it by removing the DOCKER_BUILDKIT=0
            environment-variable.

sha256:d99888d371531341a2564ff2d29756ac5349049d0d1163e45e6eec7041c4da41
DOCKER_BUILDKIT=0 docker build --no-cache --quiet -f .  19.88s user 117.66s system 22% cpu 9:58.98 total