Docker graphdriver store mislabels zstd image layers as gzip on push
Docker daemons using the graphdriver image store, including Docker 28 and upgraded Docker 29 installs, relabel zstd-compressed layers as gzip when pushing an image they pulled. The layer data itself is reused unchanged, so the push succeeds and docker run still works, since Docker detects compression from the bytes rather than the label. Tools that trust the label, such as BuildKit building FROM the relabelled image with forced zstd compression, fail with a missing compression blob error. Without forced compression the build succeeds but carries the incorrect gzip labels into the new image. The problem was reproduced on Docker 29.9.1 and 29.9.2, while the containerd image store labels the same layers correctly, and it is tracked upstream in moby/moby#53999 and moby/buildkit#7308.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.
Discussion (0)
Log in to join the discussion and vote.
Log in