= Docker BuildKit = '''Build``Kit''' is the abstracted and improved version of the container image builder that is (''used to be?'') shipped with `docker(8)`. <> ---- == Installation == In vertsion 23, the legacy builder for Docker images was deprecated. The deprecation message is as follows: {{{ DEPRECATED: The legacy builder is deprecated and will be removed in a future release. Install the buildx component to build images with BuildKit: https://docs.docker.com/go/buildx/ }}} Build``Kit (also known as '''buildx''') is now the only supported builder. Users must opt in by setting `DOCKER_BUILDKIT=1`. Removal of the legacy builder has not yet been scheduled. Users may also need to install the `buildx` plugin separately. This error would appear as: {{{ ERROR: BuildKit is enabled but the buildx component is missing or broken. Install the buildx component to build images with BuildKit: https://docs.docker.com/go/buildx/ }}} On [[Linux/Arch|Arch]], install `docker-buildx`. ---- == Usage == {{{ docker build . }}} === Contexts === Build``Kit supports building in an isolated context (i.e., inside a container). Try: {{{ $ docker buildx create --name my-builder --driver docker-container --bootstrap --use $ docker buildx ls NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS my-builder* docker-container \_ my-builder0 \_ unix:///var/run/docker.sock running v0.25.1 linux/amd64 (+3), linux/arm64, linux/arm (+2), linux/ppc64le, (7 more) default docker \_ default \_ default running v0.25.1 linux/amd64 (+3), linux/arm64, linux/arm (+2), linux/ppc64le, (7 more) }}} One important advantage to this system is building multi-platform images. {{{ docker buildx build --platform=linux/amd64,linux/arm64 . }}} ---- CategoryRicottone