From 8d68ef587f39f0faf1956213f5d735ac25a53cd4 Mon Sep 17 00:00:00 2001 From: Nicolas De Loof Date: Thu, 30 Jan 2025 14:54:51 +0100 Subject: [PATCH] fix exporter to only load image for default platform Signed-off-by: Nicolas De Loof --- pkg/compose/build_bake.go | 12 ++++++++---- pkg/e2e/build_test.go | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/pkg/compose/build_bake.go b/pkg/compose/build_bake.go index 7adc4bdf7..b386b6820 100644 --- a/pkg/compose/build_bake.go +++ b/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) } diff --git a/pkg/e2e/build_test.go b/pkg/e2e/build_test.go index 9ad1a2e19..8ca83ba2b 100644 --- a/pkg/e2e/build_test.go +++ b/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", }) })