瀏覽代碼

c8d/save: Handle digested reference same as ID

When saving an image treat `image@sha256:abcdef...` the same as
`abcdef...`, this makes it:

- Not export the digested tag as the image name
- Not try to export all tags from the image repository

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
Paweł Gronowski 1 年之前
父節點
當前提交
5e13f54f57
共有 1 個文件被更改,包括 6 次插入0 次删除
  1. 6 0
      daemon/containerd/image_exporter.go

+ 6 - 0
daemon/containerd/image_exporter.go

@@ -168,6 +168,12 @@ func (i *ImageService) ExportImage(ctx context.Context, names []string, outStrea
 
 
 		ref, refErr := reference.ParseNormalizedNamed(name)
 		ref, refErr := reference.ParseNormalizedNamed(name)
 
 
+		if refErr == nil {
+			if _, ok := ref.(reference.Digested); ok {
+				specificDigestResolved = true
+			}
+		}
+
 		if resolveErr != nil || !specificDigestResolved {
 		if resolveErr != nil || !specificDigestResolved {
 			// Name didn't resolve to anything, or name wasn't explicitly referencing a digest
 			// Name didn't resolve to anything, or name wasn't explicitly referencing a digest
 			if refErr == nil && reference.IsNameOnly(ref) {
 			if refErr == nil && reference.IsNameOnly(ref) {