Open apgrucza opened 3 weeks ago
Setting compression options requires container builder or docker instance with containerd storage. https://docs.docker.com/desktop/containerd/ . Pre-containerd the layer blobs are not created during build but when running docker push
.
If the build references a blob that already exists, eg. from a base image or via existing build cache then you need to set force-compression
if you wish to reencode the existing blobs.
The compression algorithm parameters are completely ignored when using
buildx
to build and push an image. This is despite following the example command in the compression documentation. The size and media type in the manifest remain the same regardless of the compression algorithm I choose.It appears the compression parameters are not being read at all because if I provide invalid values (e.g. a non-numeric
compression-level
) I do not get an error.I have tested on both WSL (Ubuntu) and Windows. The below sequence of commands demonstrates the problem.
BuildKit version
Dockerfile
Build and push image compressed with gzip
Build and push image compressed with zstd
Build and push uncompressed image
Manifest for gzip image
Manifest for zstd image
Manifest for uncompressed image