From a7ef4a208d96a71162ed3b0f04ec90112ead44fd Mon Sep 17 00:00:00 2001 From: Henry Wang Date: Fri, 9 May 2025 20:47:26 +0000 Subject: [PATCH] Fix multiarch image push tag for containerd snapshotter Signed-off-by: Henry Wang --- daemon/containerd/image_push.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/daemon/containerd/image_push.go b/daemon/containerd/image_push.go index d54113218a..2b5958137b 100644 --- a/daemon/containerd/image_push.go +++ b/daemon/containerd/image_push.go @@ -144,7 +144,16 @@ func (i *ImageService) pushRef(ctx context.Context, targetRef reference.Named, p wrapped := wrapWithFakeMountableBlobs(store, mountableBlobs) store = wrapped - pusher, err := resolver.Pusher(ctx, targetRef.String()) + // Annotate ref with digest to push only push tag for single digest + ref := targetRef + if _, digested := ref.(reference.Digested); !digested { + ref, err = reference.WithDigest(ref, target.Digest) + if err != nil { + return err + } + } + + pusher, err := resolver.Pusher(ctx, ref.String()) if err != nil { return err }