Repolode
moby

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. 1

    Download the latest binaries from the releases page

  2. 2

    Start the buildkitd daemon as root on Linux

    sudo buildkitd
  3. 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