Fix report image name in bake result

Signed-off-by: Arthur Bols <arthur@bols.dev>
This commit is contained in:
Arthur Bols 2025-07-15 19:03:37 +02:00 committed by Guillaume Lours
parent 5e147e852e
commit 9a1e589ce8

View File

@ -141,10 +141,11 @@ func (s *composeService) doBuildBake(ctx context.Context, project *types.Project
Targets: map[string]bakeTarget{}, Targets: map[string]bakeTarget{},
} }
var ( var (
group bakeGroup group bakeGroup
privileged bool privileged bool
read []string read []string
targets = make(map[string]string, len(serviceToBeBuild)) // service name -> build target expectedImages = make(map[string]string, len(serviceToBeBuild)) // service name -> expected image
targets = make(map[string]string, len(serviceToBeBuild)) // service name -> build target
) )
// produce a unique ID for service used as bake target // produce a unique ID for service used as bake target
@ -203,6 +204,9 @@ func (s *composeService) doBuildBake(ctx context.Context, project *types.Project
} }
} }
image := api.GetImageNameOrDefault(service, project.Name)
expectedImages[serviceName] = image
target := targets[serviceName] target := targets[serviceName]
cfg.Targets[target] = bakeTarget{ cfg.Targets[target] = bakeTarget{
Context: build.Context, Context: build.Context,
@ -211,7 +215,7 @@ func (s *composeService) doBuildBake(ctx context.Context, project *types.Project
DockerfileInline: strings.ReplaceAll(build.DockerfileInline, "${", "$${"), DockerfileInline: strings.ReplaceAll(build.DockerfileInline, "${", "$${"),
Args: args, Args: args,
Labels: labels, Labels: labels,
Tags: append(build.Tags, api.GetImageNameOrDefault(service, project.Name)), Tags: append(build.Tags, image),
CacheFrom: build.CacheFrom, CacheFrom: build.CacheFrom,
CacheTo: build.CacheTo, CacheTo: build.CacheTo,
@ -363,13 +367,14 @@ func (s *composeService) doBuildBake(ctx context.Context, project *types.Project
cw := progress.ContextWriter(ctx) cw := progress.ContextWriter(ctx)
results := map[string]string{} results := map[string]string{}
for name := range serviceToBeBuild { for name := range serviceToBeBuild {
image := expectedImages[name]
target := targets[name] target := targets[name]
built, ok := md[target] built, ok := md[target]
if !ok { if !ok {
return nil, fmt.Errorf("build result not found in Bake metadata for service %s", name) return nil, fmt.Errorf("build result not found in Bake metadata for service %s", name)
} }
results[name] = built.Digest results[image] = built.Digest
cw.Event(progress.BuiltEvent(name)) cw.Event(progress.BuiltEvent(image))
} }
return results, nil return results, nil
} }