One of the most requested features for the docker-compose tool is definitely support for building using Buildkit which is an alternative builder with great capabilities, like caching, concurrency and ability to use custom BuildKit front-ends just to mention a few… Ahhh with a nice blue output! And the good news is that Docker Compose 1.25.1 – that was just released early January – includes BuildKit support!
BuildKit support for Docker Compose is actually achieved by redirecting the docker-compose build to the Docker CLI with a limited feature set.
Enabling Buildkit build
To enable this, we have to align some stars.
First, it requires that the Docker CLI binary present in your PATH:
$ which docker
Second, docker-compose has to be run with the environment variable
COMPOSE_DOCKER_CLI_BUILD set to 1 like in:
$ COMPOSE_DOCKER_CLI_BUILD=1 docker-compose build
This instruction tells docker-compose to use the Docker CLI when executing a build. You should see the same build output, but starting with the experimental warning.
As docker-compose passes its environment variables to the Docker CLI, we can also tell the CLI to use BuildKit instead of the default builder. To accomplish that, we can execute this:
$ COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose build
A short video is worth a thousand words:
Please note that BuildKit support in docker-compose was initially released with Docker Compose 1.25.0. This feature is marked as experimental for now.
Want to know more?
- Discover more options using
docker-compose build --help
- Learn more about Buildkit: docs.docker.com/develop/develop-images/build_enhancements
Share your feedback
Have nice and fast builds with docker-compose and please share your feedback with us!