From f5535d516fa78996a71c209ce64bb322f3772d56 Mon Sep 17 00:00:00 2001 From: Djordje Lukic Date: Wed, 25 Oct 2023 14:56:36 +0200 Subject: [PATCH] c8d: Preserve image labels when tagging Signed-off-by: Djordje Lukic --- daemon/containerd/image_tag.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/daemon/containerd/image_tag.go b/daemon/containerd/image_tag.go index 251e994988..8050af2daa 100644 --- a/daemon/containerd/image_tag.go +++ b/daemon/containerd/image_tag.go @@ -16,14 +16,15 @@ import ( // TagImage creates an image named as newTag and targeting the given descriptor id. func (i *ImageService) TagImage(ctx context.Context, imageID image.ID, newTag reference.Named) error { - target, err := i.resolveDescriptor(ctx, imageID.String()) + targetImage, err := i.resolveImage(ctx, imageID.String()) if err != nil { return errors.Wrapf(err, "failed to resolve image id %q to a descriptor", imageID.String()) } newImg := containerdimages.Image{ Name: newTag.String(), - Target: target, + Target: targetImage.Target, + Labels: targetImage.Labels, } is := i.client.ImageService() @@ -40,7 +41,7 @@ func (i *ImageService) TagImage(ctx context.Context, imageID image.ID, newTag re // Check if image we would replace already resolves to the same target. // No need to do anything. - if replacedImg.Target.Digest == target.Digest { + if replacedImg.Target.Digest == targetImage.Target.Digest { i.LogImageEvent(imageID.String(), reference.FamiliarString(newTag), events.ActionTag) return nil } @@ -65,7 +66,7 @@ func (i *ImageService) TagImage(ctx context.Context, imageID image.ID, newTag re defer i.LogImageEvent(imageID.String(), reference.FamiliarString(newTag), events.ActionTag) // The tag succeeded, check if the source image is dangling - sourceDanglingImg, err := is.Get(compatcontext.WithoutCancel(ctx), danglingImageName(target.Digest)) + sourceDanglingImg, err := is.Get(compatcontext.WithoutCancel(ctx), danglingImageName(targetImage.Target.Digest)) if err != nil { if !cerrdefs.IsNotFound(err) { logger.WithError(err).Warn("unexpected error when checking if source image is dangling")