Browse Source

fix exporter to only load image for default platform

Signed-off-by: Nicolas De Loof <[email protected]>
Nicolas De Loof 10 months ago
parent
commit
8d68ef587f
2 changed files with 9 additions and 5 deletions
  1. 8 4
      pkg/compose/build_bake.go
  2. 1 1
      pkg/e2e/build_test.go

+ 8 - 4
pkg/compose/build_bake.go

@@ -173,10 +173,14 @@ func (s *composeService) doBuildBake(ctx context.Context, project *types.Project
 			privileged = true
 		}
 
-		outputs := []string{"type=docker"}
-		if options.Push && service.Image != "" {
-			outputs = append(outputs, "type=image,push=true")
+		var output string
+		push := options.Push && service.Image != ""
+		if len(service.Build.Platforms) > 1 {
+			output = fmt.Sprintf("type=image,push=%t", push)
+		} else {
+			output = fmt.Sprintf("type=docker,load=true,push=%t", push)
 		}
+
 		read = append(read, build.Context)
 		for _, path := range build.AdditionalContexts {
 			_, err := gitutil.ParseGitRef(path)
@@ -205,7 +209,7 @@ func (s *composeService) doBuildBake(ctx context.Context, project *types.Project
 			ShmSize:      build.ShmSize,
 			Ulimits:      toBakeUlimits(build.Ulimits),
 			Entitlements: entitlements,
-			Outputs:      outputs,
+			Outputs:      []string{output},
 		}
 		group.Targets = append(group.Targets, serviceName)
 	}

+ 1 - 1
pkg/e2e/build_test.go

@@ -305,7 +305,7 @@ func TestBuildPlatformsWithCorrectBuildxConfig(t *testing.T) {
 			"-f", "fixtures/build-test/platforms/compose-unsupported-platform.yml", "build")
 		res.Assert(t, icmd.Expected{
 			ExitCode: 1,
-			Err:      "no match for platform in",
+			Err:      "no match for platform",
 		})
 	})