Docker CLI plugin that extends `docker build` with BuildKit features such as multiple builders, multi-platform images and Bake.
moby/buildkit
A concurrent, cache-efficient build toolkit that converts source code into build artifacts, with Dockerfile support via frontends and used as the engine behind Docker builds.
- Stars
- 10,374
- Forks
- 1,565
- Open issues
- 835
- Last commit
- 23 hours ago
What is it?
BuildKit is a toolkit for converting source code into build artifacts in a repeatable way. It runs as a daemon (buildkitd) with a buildctl client, and builds are described in LLB, a binary intermediate format that defines a dependency graph of build steps, so independent steps can run concurrently and results can be cached instruction by instruction.
BuildKit is Dockerfile-agnostic: Dockerfile support comes from a frontend, and other build languages such as YAML, Starlark or Python-based definitions can be implemented as frontends. Outputs include container image registries, the containerd image store, local directories, and Docker, OCI and tar archives. Cache can be imported and exported through inline metadata, registries, local directories, GitHub Actions, S3 and Azure Blob Storage.
The daemon supports OCI (runc) and containerd workers, can run without root privileges, and can expose its gRPC API over Unix sockets or mTLS-secured TCP. It is used by Docker Buildx and Docker Engine, and by several other build tools.
Key features
- 01Parallel execution of independent build steps via the LLB dependency graph
- 02Instruction-level build cache with import and export to registries, local directories, GitHub Actions, S3 and Azure Blob Storage
- 03Pluggable frontends, including Dockerfile and gateway-based external frontends
- 04Multiple output types: image registries, containerd store, local files, Docker, OCI and tar
- 05Multi-platform builds and rootless operation
- 06Automatic garbage collection of build cache
Use cases
- Running a standalone build daemon on Linux servers or in Kubernetes clusters
- Building container images with cache shared through a registry or S3 bucket in CI pipelines
- Defining custom build languages on top of LLB for non-Dockerfile workflows
- Producing local build artifacts such as reports or binaries rather than container images
Quick start
- 1
Download the latest binaries from the releases page
- 2
Start the buildkitd daemon as root on Linux
sudo buildkitd - 3
Build a Dockerfile with buildctl using the dockerfile.v0 frontend
buildctl build --frontend=dockerfile.v0 --local context=. --local dockerfile=.
Things to know
- The buildkitd daemon runs only on Linux and Windows, not macOS.
- Starting the daemon normally requires root, so rootless setup needs extra configuration.
- The Homebrew formula for macOS is unofficial and does not include the daemon.
In collections
Topics
FAQ
- What is buildkit?
- A concurrent, cache-efficient build toolkit that converts source code into build artifacts, with Dockerfile support via frontends and used as the engine behind Docker builds. BuildKit is a toolkit for converting source code into build artifacts in a repeatable way. It runs as a daemon (buildkitd) with a buildctl client, and builds are described in LLB, a binary intermediate format that defines a dependency graph of build steps, so independent steps can run concurrently and results can be cached instruction by instruction.
- Is buildkit free to use? What license does it have?
- buildkit is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is buildkit still maintained?
- Actively maintained. The last commit to buildkit was on Nov 6, 2026.
- What can I use buildkit for?
- Running a standalone build daemon on Linux servers or in Kubernetes clusters Building container images with cache shared through a registry or S3 bucket in CI pipelines Defining custom build languages on top of LLB for non-Dockerfile workflows Producing local build artifacts such as reports or binaries rather than container images
- How do I install buildkit?
- Download the latest binaries from the releases page Start the buildkitd daemon as root on Linux: sudo buildkitd Build a Dockerfile with buildctl using the dockerfile.v0 frontend: buildctl build --frontend=dockerfile.v0 --local context=. --local dockerfile=.
- Where can I get buildkit?
- The source code and installation instructions are on GitHub: https://github.com/moby/buildkit
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Bazel rules for building OCI container images from Bazel targets, with shallow base image pulls, layer deduplication, and push strategies that avoid moving bytes through the local machine.
Interactive debugger for Dockerfile builds, offering breakpoints, step execution, and shell access inside build steps, built on BuildKit.
Docker-based toolkit to host, build, fine-tune and package open-source LLMs behind an OpenAI-compatible API.
A programmable automation engine that builds, tests and ships codebases using containers, running locally, in CI or in the cloud.
A monorepo build platform for TypeScript and polyglot codebases that caches unchanged work, runs only affected tasks, and integrates with CI.