@@ -124,6 +124,7 @@ type bakeMetadata map[string]buildStatus
124124
125125type buildStatus struct {
126126 Digest string `json:"containerimage.digest"`
127+ Image string `json:"image.name"`
127128}
128129
129130func (s * composeService ) doBuildBake (ctx context.Context , project * types.Project , serviceToBeBuild types.Services , options api.BuildOptions ) (map [string ]string , error ) { //nolint:gocyclo
@@ -142,9 +143,12 @@ func (s *composeService) doBuildBake(ctx context.Context, project *types.Project
142143 Groups : map [string ]bakeGroup {},
143144 Targets : map [string ]bakeTarget {},
144145 }
145- var group bakeGroup
146- var privileged bool
147- var read []string
146+ var (
147+ group bakeGroup
148+ privileged bool
149+ read []string
150+ expectedImages = make (map [string ]string , len (serviceToBeBuild )) // service name -> expected image
151+ )
148152
149153 for serviceName , service := range serviceToBeBuild {
150154 if service .Build == nil {
@@ -161,6 +165,7 @@ func (s *composeService) doBuildBake(ctx context.Context, project *types.Project
161165 }
162166
163167 image := api .GetImageNameOrDefault (service , project .Name )
168+ expectedImages [serviceName ] = image
164169
165170 entitlements := build .Entitlements
166171 if slices .Contains (build .Entitlements , "security.insecure" ) {
@@ -324,8 +329,12 @@ func (s *composeService) doBuildBake(ctx context.Context, project *types.Project
324329
325330 cw := progress .ContextWriter (ctx )
326331 results := map [string ]string {}
327- for name , m := range md {
328- results [name ] = m .Digest
332+ for service , name := range expectedImages {
333+ built , ok := md [service ] // bake target == service name
334+ if ! ok {
335+ return nil , fmt .Errorf ("build result not found in Bake metadata for service %s" , service )
336+ }
337+ results [name ] = built .Digest
329338 cw .Event (progress .BuiltEvent (name ))
330339 }
331340 return results , nil
0 commit comments