@@ -399,7 +399,8 @@ func (s *composeService) createContainer(ctx context.Context, project *types.Pro
399
399
w := progress .ContextWriter (ctx )
400
400
eventName := "Container " + name
401
401
w .Event (progress .CreatingEvent (eventName ))
402
- container , err = s .createMobyContainer (ctx , project , service , name , number , nil , autoRemove , useNetworkAliases , attachStdin , w )
402
+ container , err = s .createMobyContainer (ctx , project , service , name , number , nil ,
403
+ autoRemove , useNetworkAliases , attachStdin , w , mergeLabels (service .Labels , service .CustomLabels ))
403
404
if err != nil {
404
405
return
405
406
}
@@ -424,8 +425,9 @@ func (s *composeService) recreateContainer(ctx context.Context, project *types.P
424
425
}
425
426
name := getContainerName (project .Name , service , number )
426
427
tmpName := fmt .Sprintf ("%s_%s" , replaced .ID [:12 ], name )
427
- service .CustomLabels [api .ContainerReplaceLabel ] = replaced .ID
428
- created , err = s .createMobyContainer (ctx , project , service , tmpName , number , inherited , false , true , false , w )
428
+ created , err = s .createMobyContainer (ctx , project , service , tmpName , number , inherited ,
429
+ false , true , false , w ,
430
+ mergeLabels (service .Labels , service .CustomLabels ).Add (api .ContainerReplaceLabel , replaced .ID ))
429
431
if err != nil {
430
432
return created , err
431
433
}
@@ -475,10 +477,19 @@ func (s *composeService) startContainer(ctx context.Context, container moby.Cont
475
477
return nil
476
478
}
477
479
478
- func (s * composeService ) createMobyContainer (ctx context.Context , project * types.Project , service types.ServiceConfig ,
479
- name string , number int , inherit * moby.Container , autoRemove bool , useNetworkAliases bool , attachStdin bool , w progress.Writer ) (moby.Container , error ) {
480
+ func (s * composeService ) createMobyContainer (ctx context.Context ,
481
+ project * types.Project ,
482
+ service types.ServiceConfig ,
483
+ name string ,
484
+ number int ,
485
+ inherit * moby.Container ,
486
+ autoRemove , useNetworkAliases , attachStdin bool ,
487
+ w progress.Writer ,
488
+ labels types.Labels ,
489
+ ) (moby.Container , error ) {
480
490
var created moby.Container
481
- containerConfig , hostConfig , networkingConfig , err := s .getCreateOptions (ctx , project , service , number , inherit , autoRemove , attachStdin )
491
+ containerConfig , hostConfig , networkingConfig , err := s .getCreateOptions (ctx , project , service , number , inherit ,
492
+ autoRemove , attachStdin , labels )
482
493
if err != nil {
483
494
return created , err
484
495
}
@@ -725,3 +736,13 @@ func (s *composeService) startService(ctx context.Context, project *types.Projec
725
736
}
726
737
return nil
727
738
}
739
+
740
+ func mergeLabels (ls ... types.Labels ) types.Labels {
741
+ merged := types.Labels {}
742
+ for _ , l := range ls {
743
+ for k , v := range l {
744
+ merged [k ] = v
745
+ }
746
+ }
747
+ return merged
748
+ }
0 commit comments