v0.13.0
buildkit 0.13.0
Welcome to the 0.13.0 release of buildkit!
Please try out the release binaries and report any issues at
https://github.com/moby/buildkit/issues.
Contributors
- Tõnis Tiigi
- CrazyMax
- Justin Chadwell
- Sebastiaan van Stijn
- Akihiro Suda
- Jonathan A. Sternberg
- Kohei Tokunaga
- David Karlsson
- Leandro Santiago
- Gabriel Adrian Samfira
- Chris Goller
- Anthony Nandaa
- Erik Sipsma
- Paweł Gronowski
- Jakub Ciolek
- Paul "TBBle" Hampson
- Brian Goff
- Adrien Delorme
- Artem Khramov
- Nguyễn Đức Chiến
- Aaron Lehmann
- Dan Duvall
- Mark Yen
- Milas Bowman
- Tristan Stenner
- Yan Song
- Ahmon Dancy
- Alex Couture-Beil
- Alex Suraci
- Arnaldo Garcia Rincon
- Austin Vazquez
- Bjorn Neergaard
- Brennan Kinney
- Bunyamin Dokmetas
- Burt Holzman
- Dennis Haney
- Derek McGowan
- Erik McKelvey
- Frank Villaro-Dixon
- Grégoire Payen de La Garanderie
- Guilhem Charles
- Ian King'ori
- James Carnegie
- Kazuyoshi Kato
- Reshen
- Sascha Hemleb
- Tibor Vass
- Zhizhen He
- fanjiyun.fjy
- frankyang
- guangwu
- liulanzheng
- njucjc
- omahs
- retornam
- x893675
- yumemio
- yzewei
- 蝦米
Notable Changes
-
Default Dockerfile frontend has been updated to v1.7.0
-
Experimental Windows Containers support is now available with containerd worker. Windows release artifacts now also contain the
buildkitd.exe
binary. #3518 #3517 #4494 #4479 #4432 #4387 #4364 #4670 #4692 docs -
Multiple exporters(outputs) can now be specified with a single build request #4134
-
New option
rewrite-timestamps
is available when exporting images that with convert files in exported layers according to the epoch time for reproducible builds #4057 docs -
There is a new bridge network mode
--oci-worker-net=bridge
that can be used to set up CNI bridge networking with no external dependencies for better network isolation of build containers. It is expected that v0.14.0 release will enable this network mode by default. #4352 #4650 #4539 -
SOURCE_DATE_EPOCH
in now not applied to the layer records of the base image to keep them immutable #4663 -
Github Actions cache backend now supports defining timeout in case the service gets rate-limited #4702
-
Gateway API has a new method
ResolveSourceMeta
that will replace the previousResolveImageConfig
method. The new method works with all LLB source types, not just images, and correctly handles policy conversions between sources. #4563 #4647 -
When using host networking, local host DNS routes can also be used instead of the default #4524
-
Changing cache mount's ID property does not invalidate cache for the build step anymore #4585
-
Basic metrics support has been added via OpenTelemetry and Prometheus #4460
-
Token cache is no longer shared between parallel push requests #3592
-
Update insecure registry fallback logic to only fallback with previous host #4613
-
Build secrets can now avoid
noexec
mount restrictions if file mode set execution bit #4670 -
GRPC socket for OpenTelemetry tracing now defaults to runtime directory path #4078 #4619
-
LLB API now has new options to directly control how different mounts for container steps are cached #4624
-
Cancellation and timeout errors should now contain better stacktraces on
--debug
mode #4587 #4457 -
Edge case of empty multiplatform build result does not generate errors anymore #4526
-
Prune command now avoids taking database lock for a long time if deletion takes too much time #4413
-
Healthcheck service has been added to Control API #4145
-
Buildctl has new
quiet
andrawjson
progress mode #4213 #4113 -
Buildctl has new
--debug-json-cache-metrics
debug option #4464 -
Buildctl now supports
--registry-auth-tlscontext
flag for controlling the client authentication requests #4420 #4211 -
Buildctl now propagates
SOURCE_DATE_EPOCH
to build arg automatically if it is defined #4231 -
LLB client now allows exposing local sources via
FS
interface instead of local path #4094 -
Ensure only one platform is pulled on resolving image config, even if multiple match #4311
-
Rootless version supports new
--detach-netns
mode #4546 -
Update default CNI config path for rootless mode to
~/.config/buildkit/cni.json
#4547 -
Ensure correct pinned commit is checked out if tags that have same path components #4473
-
Exporting caches for results with no layers is now skipped in OCI structures #4336
-
New debugging options have been added to the scheduler component #4410
-
Improve error messages on
StatFile
requests #4321 -
Daemon logs can now be exported in JSON format #4044
-
Qemu emulation for loongarch64 is now detected if available #4392
-
Number of log lines per build step on TTY mode can now be configured with
BUILDKIT_TTY_LOG_LINES
#4284 -
Empty
OnBuild
value is now omitted from image config #4648 -
Fixes for bridge networking on Rootless mode #4655
-
Fix possible "missing lease requirement" error on canceling one of parallel exports #4529
-
Fix file permissions error if
ADD <tar.gz>
used with User namespace #4712 -
Fix possible permission error when using custom frontends with User namespace on certain systems #4714
-
Fixes for merging parallel build steps that generate the same cache keys #4559 #4285
-
Fix processing result map in LLB API if the evaluate option is set to true #4544
-
Fix hardlink issue with whiteout deletes in the merge snapshotter #4516
-
Fix issue with caching multiple mounts originating from the same source #4270 #4281
-
Fix possible panic condition on deleting history records #4451
-
Fix issue where same source image layer chains could end up in the provenance attestation multiple times #4433
-
Fix possible pull error caused by previous cache #4428
-
Fix possible data race on transfer progress handling #4726
-
Fix issues where session messages could grow bigger than maximum message size when transferring SBOM to client #4313
-
Fix issue where specific build steps could drop progress messages #4347
-
Fix possible wrong usage statitics in merged snapshotters #4389
-
Fix possible storage leak for compression variants #4353
-
Fix handling of certain SSH Git URLs #4326
-
Fix possible missing blob error on mapping files to SBOM packages #4210
-
Fix diffing layers when custom Gzip compression level is set #4275
-
Fix possible panic with stargz snapshotter #4187
-
Fix generation of cache checksums for Merge and Diff operations #4192
-
Fix possible negative pull time in progressbar on parallel pulls #4183
-
Fix handling of missing files in LLB File remove API #4051
Dependency Changes
- github.com/AdaLogics/go-fuzz-headers 43070de90fa1 -> ced1acdcaa24
- github.com/AdamKorcz/go-118-fuzz-build 5330a85ea652 -> 8075edf89bb0
- github.com/Microsoft/hcsshim v0.10.0-rc.8 -> v0.11.4
- github.com/aws/aws-sdk-go-v2 v1.17.6 -> v1.24.1
- github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 -> v1.5.4
- github.com/aws/aws-sdk-go-v2/config v1.18.16 -> v1.26.6
- github.com/aws/aws-sdk-go-v2/credentials v1.13.16 -> v1.16.16
- github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.24 -> v1.14.11
- github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.56 -> v1.15.15
- github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.30 -> v1.2.10
- github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.24 -> v2.5.10
- github.com/aws/aws-sdk-go-v2/internal/ini v1.3.31 -> v1.7.3
- github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.22 -> v1.2.10
- github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 -> v1.10.4
- github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.25 -> v1.2.10
- github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.24 -> v1.10.10
- github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.24 -> v1.16.10
- github.com/aws/aws-sdk-go-v2/service/s3 v1.30.6 -> v1.48.1
- github.com/aws/aws-sdk-go-v2/service/sso v1.12.5 -> v1.18.7
- github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.5 -> v1.21.7
- github.com/aws/aws-sdk-go-v2/service/sts v1.18.6 -> v1.26.7
- github.com/aws/smithy-go v1.13.5 -> v1.19.0
- github.com/cenkalti/backoff/v4 v4.2.0 -> v4.2.1
- github.com/containerd/console v1.0.3 -> v1.0.4
- github.com/containerd/containerd v1.7.2 -> v1.7.13
- github.com/containerd/continuity v0.4.1 -> v0.4.3
- github.com/containerd/fuse-overlayfs-snapshotter v1.0.2 -> v1.0.8
- github.com/containerd/log v0.1.0 new
- github.com/containerd/nydus-snapshotter v0.8.2 -> v0.13.7
- github.com/containerd/stargz-snapshotter v0.14.3 -> v0.15.1
- github.com/containerd/stargz-snapshotter/estargz v0.14.3 -> v0.15.1
- github.com/containernetworking/plugins v1.4.0 new
- github.com/distribution/reference v0.5.0 new
- github.com/docker/cli v24.0.4 -> v25.0.3
- github.com/docker/docker 8e51b8b59cb8 -> v25.0.3
- github.com/docker/docker-credential-helpers v0.7.0 -> v0.8.0
- github.com/docker/go-connections v0.4.0 -> v0.5.0
- github.com/felixge/fgprof v0.9.3 new
- github.com/felixge/httpsnoop v1.0.3 -> v1.0.4
- github.com/go-logr/logr v1.2.3 -> v1.3.0
- github.com/golang-jwt/jwt/v4 v4.4.2 -> v4.5.0
- github.com/google/go-cmp v0.5.9 -> v0.6.0
- github.com/google/pprof e72429f035bd new
- github.com/google/uuid v1.3.0 -> v1.5.0
- github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3 -> v2.16.0
- github.com/hanwen/go-fuse/v2 v2.2.0 -> v2.4.0
- github.com/hashicorp/go-retryablehttp v0.7.2 -> v0.7.5
- github.com/klauspost/compress v1.17.2 -> v1.17.4
- github.com/moby/docker-image-spec v1.3.1 new
- github.com/moby/patternmatcher v0.5.0 -> v0.6.0
- github.com/moby/sys/mountinfo v0.6.2 -> v0.7.1
- github.com/moby/sys/user v0.1.0 new
- github.com/moby/term v0.5.0 new
- github.com/opencontainers/image-spec v1.1.0-rc3 -> v1.1.0-rc5
- github.com/opencontainers/runtime-spec v1.1.0-rc.2 -> v1.1.0
- github.com/pkg/profile v1.5.0 -> v1.7.0
- github.com/prometheus/client_golang v1.14.0 -> v1.17.0
- github.com/prometheus/client_model v0.3.0 -> v0.5.0
- github.com/prometheus/common v0.42.0 -> v0.44.0
- github.com/prometheus/procfs v0.9.0 -> v0.12.0
- github.com/serialx/hashring 8b2912629002 -> 22c0c7ab6b1b
- github.com/sirupsen/logrus v1.9.0 -> v1.9.3
- github.com/spdx/tools-golang v0.5.1 -> v0.5.3
- github.com/stretchr/testify v1.8.3 -> v1.8.4
- github.com/tonistiigi/fsutil 36ef4d8c0dbb -> 7525a1af2bb5
- github.com/tonistiigi/go-actions-cache 0bdeb6e1eac7 -> a0b64f338598
- github.com/urfave/cli v1.22.12 -> v1.22.14
- github.com/vbatts/tar-split v0.11.2 -> v0.11.5
- github.com/vishvananda/netlink v1.2.1-beta.2 new
- github.com/vishvananda/netns v0.0.4 new
- go.etcd.io/bbolt v1.3.7 -> v1.3.9
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.40.0 -> v0.46.1
- go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.40.0 -> v0.46.1
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.40.0 -> v0.46.1
- go.opentelemetry.io/otel v1.14.0 -> v1.21.0
- go.opentelemetry.io/otel/exporters/jaeger v1.14.0 -> v1.17.0
- go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.42.0 new
- go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.42.0 new
- go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.42.0 new
- go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0 -> v1.21.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0 -> v1.21.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.14.0 -> v1.21.0
- go.opentelemetry.io/otel/exporters/prometheus v0.42.0 new
- go.opentelemetry.io/otel/metric v0.37.0 -> v1.21.0
- go.opentelemetry.io/otel/sdk v1.14.0 -> v1.21.0
- go.opentelemetry.io/otel/sdk/metric v1.21.0 new
- go.opentelemetry.io/otel/trace v1.14.0 -> v1.21.0
- go.opentelemetry.io/proto/otlp v0.19.0 -> v1.0.0
- google.golang.org/genproto 7f2fa6fef1f4 -> 49dd2c1f3d0b
- google.golang.org/genproto/googleapis/api 49dd2c1f3d0b new
- google.golang.org/genproto/googleapis/rpc 49dd2c1f3d0b new
- google.golang.org/grpc v1.53.0 -> v1.59.0
Previous release can be found at v0.12.5