moby/buildkit

Created Jun 7, 2022 · View the moby/buildkit repository page

concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit

Want this for your repo?

Render a free sample of any GitHub repo in seconds.

Visualize your own →

Contributors

158

Lines of Code

28,270

From

Dec 14, 2015

To

Jun 4, 2022

About moby/buildkit

BuildKit is a toolkit for converting source code into build artifacts in an efficient, expressive, and repeatable manner. Written in Go, it serves as the modern builder for Docker and other container systems, offering concurrent dependency resolution, efficient instruction caching, and automatic garbage collection. The project is designed to be Dockerfile-agnostic, meaning it can work with various build definition formats beyond traditional Dockerfiles.

The toolkit is composed of a buildkitd daemon and buildctl client, with the daemon supporting multiple worker backends including OCI (runc) and containerd. Key capabilities include build cache import and export to various backends like registries, local directories, GitHub Actions, S3, and Azure Blob Storage. BuildKit supports nested build job invocations, distributable workers, multiple output formats, and execution without root privileges. It introduces LLB, a binary intermediate format comparable to LLVM IR, which enables concurrent execution and efficient caching while remaining vendor-neutral.

BuildKit has achieved significant adoption across the container ecosystem, serving as the default builder in Docker Engine since version 23.0 and powering numerous projects including Moby/Docker, Tekton Pipelines, Docker buildx, Dagger, Earthly, Gitpod, and many others. The project supports an extensive ecosystem of frontends that compile different languages and build formats into LLB, including Buildpacks, Earthfile, HLB, Rust's Cargo Wharf, Python, Nix, and specialized formats for platforms like Unikraft. It can be deployed across Linux, Windows, and macOS, with support for rootless execution, Kubernetes deployments, and various containerization approaches.

Share this video

More from moby

See all →