浏览代码

buildkit: normalize build target and local platform

Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
CrazyMax 3 年之前
父节点
当前提交
b4e056d556
共有 1 个文件被更改,包括 8 次插入7 次删除
  1. 8 7
      builder/builder-next/adapters/containerimage/pull.go

+ 8 - 7
builder/builder-next/adapters/containerimage/pull.go

@@ -21,6 +21,7 @@ import (
 	"github.com/containerd/containerd/remotes/docker"
 	"github.com/containerd/containerd/remotes/docker/schema1"
 	distreference "github.com/docker/distribution/reference"
+	dimages "github.com/docker/docker/daemon/images"
 	"github.com/docker/docker/distribution"
 	"github.com/docker/docker/distribution/metadata"
 	"github.com/docker/docker/distribution/xfer"
@@ -853,11 +854,11 @@ func resolveModeToString(rm source.ResolveMode) string {
 }
 
 func platformMatches(img *image.Image, p *ocispec.Platform) bool {
-	if img.Architecture != p.Architecture {
-		return false
-	}
-	if img.Variant != "" && img.Variant != p.Variant {
-		return false
-	}
-	return img.OS == p.OS
+	return dimages.OnlyPlatformWithFallback(*p).Match(ocispec.Platform{
+		Architecture: img.Architecture,
+		OS:           img.OS,
+		OSVersion:    img.OSVersion,
+		OSFeatures:   img.OSFeatures,
+		Variant:      img.Variant,
+	})
 }