浏览代码

daemon/images: manifestMatchesPlatform() punch through context

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Sebastiaan van Stijn 2 年之前
父节点
当前提交
9dab00a76e
共有 1 个文件被更改,包括 4 次插入4 次删除
  1. 4 4
      daemon/images/image.go

+ 4 - 4
daemon/images/image.go

@@ -45,11 +45,10 @@ type manifest struct {
 	Config specs.Descriptor `json:"config"`
 }
 
-func (i *ImageService) manifestMatchesPlatform(img *image.Image, platform specs.Platform) bool {
-	ctx := context.TODO()
+func (i *ImageService) manifestMatchesPlatform(ctx context.Context, img *image.Image, platform specs.Platform) bool {
 	logger := logrus.WithField("image", img.ID).WithField("desiredPlatform", platforms.Format(platform))
 
-	ls, leaseErr := i.leases.ListResources(context.TODO(), leases.Lease{ID: imageKey(img.ID().Digest())})
+	ls, leaseErr := i.leases.ListResources(ctx, leases.Lease{ID: imageKey(img.ID().Digest())})
 	if leaseErr != nil {
 		logger.WithError(leaseErr).Error("Error looking up image leases")
 		return false
@@ -150,6 +149,7 @@ func (i *ImageService) manifestMatchesPlatform(img *image.Image, platform specs.
 
 // GetImage returns an image corresponding to the image referred to by refOrID.
 func (i *ImageService) GetImage(refOrID string, options imagetypes.GetImageOpts) (retImg *image.Image, retErr error) {
+	ctx := context.TODO()
 	defer func() {
 		if retErr != nil || retImg == nil || options.Platform == nil {
 			return
@@ -168,7 +168,7 @@ func (i *ImageService) GetImage(refOrID string, options imagetypes.GetImageOpts)
 		}
 		// In some cases the image config can actually be wrong (e.g. classic `docker build` may not handle `--platform` correctly)
 		// So we'll look up the manifest list that coresponds to this imaage to check if at least the manifest list says it is the correct image.
-		if i.manifestMatchesPlatform(retImg, p) {
+		if i.manifestMatchesPlatform(ctx, retImg, p) {
 			return
 		}