buildkit 0.12.0
Welcome to the 0.12.0 release of buildkit!
This is a pre-release of buildkit
Please try out the release binaries and report any issues at
https://github.com/moby/buildkit/issues.
Contributors
- Tõnis Tiigi
- Justin Chadwell
- CrazyMax
- Sebastiaan van Stijn
- Akihiro Suda
- Erik Sipsma
- Gabriel Adrian Samfira
- Kohei Tokunaga
- Alex Couture-Beil
- Cory Bennett
- Brian Goff
- Nick Santos
- Wei Zhang
- Alex Suraci
- Alexis Murzeau
- Changwei Ge
- David Karlsson
- Paweł Gronowski
- Aaron Lehmann
- Jordan Goasdoue
- Seiya Miyata
- Ben Longo
- Jacob Gillespie
- Alan Fregtman
- Andy Alt
- Bertrand Paquet
- Chaerim Yeo
- Chris Goller
- Cory Snider
- Dan Duvall
- Gabriel
- Gahl Saraf
- George
- Hugo Santos
- Ilya Dmitrichenko
- Kang, Matthew
- Matias Insaurralde
- Matt Kang
- Nick Miyake
- Pranav Pandit
- Sertac Ozercan
- Vladislav Ivanov
- Yan Song
- Yurii Rashkovskii
- @ggjulio
- @chengjoey
- @lomot
Notable Changes
- Default Dockerfile frontend has been updated to 1.6.0
- Remote cache export/import to the registry now supports OCI image manifest compatible format when setting
image-manifest=true
#3724 - Local and Tar exporters now support
platform-split=false
option to merge all artifacts for multiple platforms to the same directory. #3161 - Provenance attestation can now capture resource usage information for the system and individual build steps. This information can be written to exported attestation by setting
capture-usage=true
attestation option and is set automatically for History API records. This feature depends on CgroupV2, and some fields require kernel configured withCONFIG_PSI
enabled. #3860 #3999 SOURCE_DATE_EPOCH
value for reproducible builds is now set as the creation timestamp when exporting image to containerd image store #3263buildctl
has new--wait
flag to block RPCs until the connection becomes available #3586- WCOW support for certain actions has improved #3783 #3782 #3907 #3906 #3545 #3544 #3516 #3908
- Stargz support is out of experimental #3637
- Creating layer blobs now uses deterministic timestamps for whiteout files when Overlay snapshotter is supported for more reproducible builds #3981
- Source policy support now also applies to image config metadata requests. These requests can return a new source reference defined by the policy that the frontend can use in follow-up LLB requests. #3956 #4014
- Sourcemaps in provenance attestations and errors now allow setting the source language name #3620
- File operations are now always platform-independent for better direct cache reuse #3858
- When exporting an image to Containerd image store, unpack logic now works for multi-platform images by unpacking only the native platform by default #3982 #3983
- Cgroup namespace isolation is enabled for containers on supported systems #4003
- New DockerUI package is provided by frontend authors who want to target
docker buildx
flags without the need to copy code from Dockerfile frontend #3606 - Downloading image layers in the exporter can now work in parallel for different platforms #3984
- Zstd compressed layers are now supported also with Docker-style mediatypes #3968
- Secret environment variables can now be set using the interactive container API #3957
- TOML buildkitd config now supports multiple units for storage limits #3773
- gRPC API now enables reflection #3790
- HTTP sources now have better caching for servers that handle
Accept-Encoding
differently for different HTTP methods #3745 #3788 - New
buildctl
commandsdebug histories
andprune-histories
#3498 - Loading SBOM generator image can now be configured with resolve mode parameter #3446
- Gateway frontend source image can now be set with defining named context #3633
- Performance improvements to scanning local files for context upload #3977
- Interactive container API now supports setting container Hostname #3680
- History API now uses a separate Containerd namespace for its objects, fixing some issues when the same blobs are used by image store #3833
- Make files created by Git source more deterministic #3598
- Git source now handles URLs that define subdir and empty reference #3596
- Remote cache export now supports
registry.insecure
option like the Image exporter #3501 - Azure Blob storage cache export supports setting the account name as parameter #3476
- New client APIs for configuring TLS authentication to use system certificates #3760
- Fixes for copying Unicode filenames with local context #3946 #4009
- Fix the issue where some builds could fail with "missing provenance" error #3945
- Fix lazy loaded layers reuse for cache when running parallel builds #3109
- Fix issue with missing GC label for layers when exporting image to containerd image store #3161
- Fix possible progressbar panic on resizing terminal window #3967
- Fix possible "inconsistent graph state" error when running parallel cached, and no-cache builds #3953
- Fix possible zero build step index numbers on progressbar #3942 #3838
- Fix possible "container does not exist" error #3940
- Fix possible "concurrent map read and write" error #3938
- Fix possible issue where the status stream could be missing for History record #3937
- Fix possible data races #4004 #3994 #4010
- Fix OCI layout URIs in provenance attestation #3918
- Fix regression bug in v0.11.x OpenTelemetry trace delegation from the client #3909
- Fix possible deadlock on network error #3857
- Fix filtering out deleted History API records #3827 #3733
- Fix possible build cache reference leak #3851 #3815
- Fix possible FD leak in SSH forwarding #3848
- Fix possible concurrent map access in Client library #3813
- Fixes for Runc container SIGKILL/exit-code handling #3754 #3765 #3658 #3722
- Fix creating
oci-layout
file when exporting uncompressed OCI layout #3729
Dependency Changes
- github.com/AdaLogics/go-fuzz-headers 43070de90fa1 new
- github.com/AdamKorcz/go-118-fuzz-build 5330a85ea652 new
- github.com/Masterminds/semver/v3 v3.1.0 new
- github.com/Microsoft/go-winio v0.5.2 -> v0.6.1
- github.com/Microsoft/hcsshim v0.9.6 -> v0.10.0-rc.8
- github.com/anchore/go-struct-converter c68fdcfa2092 new
- github.com/aws/aws-sdk-go-v2 v1.16.3 -> v1.17.6
- github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.5 new
- github.com/aws/smithy-go v1.11.2 -> v1.13.5
- github.com/containerd/cgroups v1.0.4 -> v1.1.0
- github.com/containerd/containerd v1.6.14 -> v1.7.2
- github.com/containerd/continuity v0.3.0 -> v0.4.1
- github.com/containerd/fifo v1.0.0 -> v1.1.0
- github.com/containerd/go-cni v1.1.6 -> v1.1.9
- github.com/containerd/go-runc v1.0.0 -> v1.1.0
- github.com/containerd/nydus-snapshotter v0.3.1 -> v0.8.2
- github.com/containerd/stargz-snapshotter v0.13.0 -> v0.14.3
- github.com/containerd/ttrpc v1.1.0 -> v1.2.2
- github.com/containerd/typeurl/v2 v2.1.1 new
- github.com/containernetworking/cni v1.1.1 -> v1.1.2
- github.com/cyphar/filepath-securejoin v0.2.3 new
- github.com/docker/cli v23.0.0-rc.1 -> v24.0.2
- github.com/docker/distribution v2.8.1 -> v2.8.2
- github.com/docker/docker v23.0.0-rc.1 -> 98d3da79ef9c
- github.com/felixge/httpsnoop v1.0.2 -> v1.0.3
- github.com/golang/protobuf v1.5.2 -> v1.5.3
- github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3 new
- github.com/hanwen/go-fuse/v2 f57e95bda82d -> v2.2.0
- github.com/hashicorp/go-cleanhttp v0.5.1 -> v0.5.2
- github.com/hashicorp/go-retryablehttp v0.7.1 -> v0.7.2
- github.com/klauspost/compress v1.15.12 -> v1.16.3
- github.com/opencontainers/image-spec 02efb9a75ee1 -> v1.1.0-rc3
- github.com/opencontainers/runc v1.1.3 -> v1.1.7
- github.com/opencontainers/runtime-spec 1c3f411f0417 -> v1.1.0-rc.2
- github.com/opencontainers/selinux v1.10.2 -> v1.11.0
- github.com/pelletier/go-toml v1.9.4 -> v1.9.5
- github.com/prometheus/common v0.37.0 -> v0.42.0
- github.com/prometheus/procfs v0.8.0 -> v0.9.0
- github.com/spdx/tools-golang d6f58551be3f -> v0.5.1
- github.com/stretchr/testify v1.8.0 -> v1.8.3
- github.com/tonistiigi/fsutil fb433841cbfa -> 36ef4d8c0dbb
- github.com/tonistiigi/vt100 8066bb97264f -> f9a4f7ef6531
- github.com/urfave/cli v1.22.4 -> v1.22.12
- go.etcd.io/bbolt v1.3.6 -> v1.3.7
- go.opencensus.io v0.23.0 -> v0.24.0
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.29.0 -> v0.40.0
- go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.29.0 -> v0.40.0
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.29.0 -> v0.40.0
- go.opentelemetry.io/otel v1.4.1 -> v1.14.0
- go.opentelemetry.io/otel/exporters/jaeger v1.4.1 -> v1.14.0
- go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.4.1 -> v1.14.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.4.1 -> v1.14.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.4.1 -> v1.14.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.4.1 -> v1.14.0
- go.opentelemetry.io/otel/metric v0.27.0 -> v0.37.0
- go.opentelemetry.io/otel/sdk v1.4.1 -> v1.14.0
- go.opentelemetry.io/otel/trace v1.4.1 -> v1.14.0
- go.opentelemetry.io/proto/otlp v0.12.0 -> v0.19.0
- golang.org/x/mod v0.9.0 new
- golang.org/x/tools v0.7.0 new
- google.golang.org/genproto 7780775163c4 -> 7f2fa6fef1f4
- google.golang.org/grpc v1.50.1 -> v1.53.0
- kernel.org/pub/linux/libs/security/libcap/cap v1.2.67 new
- kernel.org/pub/linux/libs/security/libcap/psx v1.2.67 new
Previous release can be found at v0.11.6