Welcome to the 0.8.0 release of buildkit!
Important
- This release changes images pull mode in a way that image layers are only pulled from a registry when their contents is needed locally. If your build does not export the build result or does not need to run new containers on top of the image, the build will succeed without pulling the image. This allows you to make metadata modifications to remote images without pulling them or check that the remote cache is still valid for your build without actually pulling the cache layers.
Notable Changes
-
Builtin Dockerfile frontend defaults to
v1.2.0
including support forRUN --mount
among other features. Dockerfile changelog -
Gateway API now allows running interactive container processes that can mount previous build results #1627 #1731
-
API: Build errors now contain state for debugging the failure location including the snapshots' data when the error happened #1732
-
Image layers used by the build are now only pulled when their content is being used by subsequent build steps or exporter. BuildKit can now make cache decisions about the data while it remains in the remote registry. #1475
-
Fetching authorization tokens has been moved to client-side (if the client supports it). Passwords do not leak into the build daemon anymore and users can see from build output when credentials or tokens are accessed. #1660
-
Support stargz/eStargz for pulling image layers incrementally based on what files are accessed https://github.com/moby/buildkit/blob/master/docs/stargz-estargz.md #1402
-
Buildkit can now build for multiple architectures with QEMU without
binfmt_misc
handlers loaded to the kernel.moby/buildkit
image comes with the emulator images. #1516 -
Build errors now track the error location in the original source files #1494
-
Frontend API now supports subrequests for implementing supplementary tasks like describing build stages or arguments. #1724
-
Connection errors while communicating with the registry for push and pull now trigger a retry #1791
-
Git source now supports token authentication via build secrets #1533
-
Building from git source now supports forwarding SSH socket for authentication #1782
-
Allow passing secrets to the build with environment variables #1534
-
Increase registry communication performance and stability with custom connection pool and authenticator #1636
-
Running commands do not leak empty stub files to image layers anymore (for example for mounted secrets) #1739
-
Allow better handling client sessions dropping while it is being shared by multiple builds #1551
-
Allow (and default to) using OCI mediatypes on exporting manifests for remote cache #1746
-
Only add manifest descriptor annotations to OCI type manifests and not Docker manifests. This fixes an issue with GCR validation. #1730
-
Avoid builds that generate excessive logs to cause a crash or slow down the build. Clipping is performed if needed. #1754
-
Fix race on creating CNI sandboxes for containers #1775
-
Execution steps now allow overriding the hostname for the build container #1339
-
Always use correct mediatypes on exporting objects, not considering the object's original mediatype #1541
-
Content-based checksums are now calculated in parallel for the build step with multiple mounts #1744
-
Reenable setting insecure-registry config while exporting to a registry #1601
-
Fix synchronization issues on pushing multi-platform images that share layers #1548
-
Cache load errors are now handled gracefully #1498
-
Disable truncating by default when using
--progress=plain
#1435 -
Official image
moby/buildkit
now containspigz
for better extraction performance #1799 -
Support for exposing SSH agent socket on Windows has been improved #1695
-
LLB client library now supports using asynchronous callbacks when building the LLB graph #1426
-
Change default Seccomp profile to the one provided by Docker #1807
Please try out the release binaries and report any issues at
https://github.com/moby/buildkit/issues.
Contributors
- Tõnis Tiigi
- Akihiro Suda
- Cory Bennett
- Paul "TBBle" Hampson
- Sebastiaan van Stijn
- Edgar Lee
- Tibor Vass
- Erik Sipsma
- Kohei Tokunaga
- Alex Couture-Beil
- Vlad A. Ionescu
- Lu Jingxiao
- Simon Ferquel
- CrazyMax
- Anders F Björklund
- Andrea Bolognani
- Andrea Luzzardi
- Andrew Chang
- Andrey Smirnov
- Anurag Goel
- Chanhun Jeong
- Chen Bin
- Ilya Dmitrichenko
- Jon Zeolla
- Jonathan Azoff
- Jörg Franke
- Kees Cook
- Miguel Ángel Jimeno
- Nick Santos
- Sam Whited
- Shingo Omura
- Wang Yumu
- Wei Fu
- Xiaofan Zhang
- Ximo Guanter
- 岁丰