Ver código fonte

Merge pull request #46007 from vvoland/c8d-inspect-fix-duplicate-digested

c8d/inspect: Don't duplicate digested ref
Sebastiaan van Stijn 2 anos atrás
pai
commit
f329397077
1 arquivos alterados com 6 adições e 1 exclusões
  1. 6 1
      daemon/containerd/image.go

+ 6 - 1
daemon/containerd/image.go

@@ -112,7 +112,7 @@ func (i *ImageService) GetImage(ctx context.Context, refOrID string, options ima
 			return nil, err
 			return nil, err
 		}
 		}
 
 
-		// Each image will result in 2 references (named and digested).
+		// Usually each image will result in 2 references (named and digested).
 		refs := make([]reference.Named, 0, len(tagged)*2)
 		refs := make([]reference.Named, 0, len(tagged)*2)
 		for _, i := range tagged {
 		for _, i := range tagged {
 			if i.UpdatedAt.After(lastUpdated) {
 			if i.UpdatedAt.After(lastUpdated) {
@@ -137,6 +137,11 @@ func (i *ImageService) GetImage(ctx context.Context, refOrID string, options ima
 			}
 			}
 			refs = append(refs, name)
 			refs = append(refs, name)
 
 
+			if _, ok := name.(reference.Digested); ok {
+				// Image name already contains a digest, so no need to create a digested reference.
+				continue
+			}
+
 			digested, err := reference.WithDigest(reference.TrimNamed(name), desc.Target.Digest)
 			digested, err := reference.WithDigest(reference.TrimNamed(name), desc.Target.Digest)
 			if err != nil {
 			if err != nil {
 				// This could only happen if digest is invalid, but considering that
 				// This could only happen if digest is invalid, but considering that