|
|
@@ -399,7 +399,8 @@ func (s *composeService) createContainer(ctx context.Context, project *types.Pro
|
|
|
w := progress.ContextWriter(ctx)
|
|
|
eventName := "Container " + name
|
|
|
w.Event(progress.CreatingEvent(eventName))
|
|
|
- container, err = s.createMobyContainer(ctx, project, service, name, number, nil, autoRemove, useNetworkAliases, attachStdin, w)
|
|
|
+ container, err = s.createMobyContainer(ctx, project, service, name, number, nil,
|
|
|
+ autoRemove, useNetworkAliases, attachStdin, w, mergeLabels(service.Labels, service.CustomLabels))
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
@@ -424,8 +425,9 @@ func (s *composeService) recreateContainer(ctx context.Context, project *types.P
|
|
|
}
|
|
|
name := getContainerName(project.Name, service, number)
|
|
|
tmpName := fmt.Sprintf("%s_%s", replaced.ID[:12], name)
|
|
|
- service.CustomLabels[api.ContainerReplaceLabel] = replaced.ID
|
|
|
- created, err = s.createMobyContainer(ctx, project, service, tmpName, number, inherited, false, true, false, w)
|
|
|
+ created, err = s.createMobyContainer(ctx, project, service, tmpName, number, inherited,
|
|
|
+ false, true, false, w,
|
|
|
+ mergeLabels(service.Labels, service.CustomLabels).Add(api.ContainerReplaceLabel, replaced.ID))
|
|
|
if err != nil {
|
|
|
return created, err
|
|
|
}
|
|
|
@@ -475,10 +477,19 @@ func (s *composeService) startContainer(ctx context.Context, container moby.Cont
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-func (s *composeService) createMobyContainer(ctx context.Context, project *types.Project, service types.ServiceConfig,
|
|
|
- name string, number int, inherit *moby.Container, autoRemove bool, useNetworkAliases bool, attachStdin bool, w progress.Writer) (moby.Container, error) {
|
|
|
+func (s *composeService) createMobyContainer(ctx context.Context,
|
|
|
+ project *types.Project,
|
|
|
+ service types.ServiceConfig,
|
|
|
+ name string,
|
|
|
+ number int,
|
|
|
+ inherit *moby.Container,
|
|
|
+ autoRemove, useNetworkAliases, attachStdin bool,
|
|
|
+ w progress.Writer,
|
|
|
+ labels types.Labels,
|
|
|
+) (moby.Container, error) {
|
|
|
var created moby.Container
|
|
|
- containerConfig, hostConfig, networkingConfig, err := s.getCreateOptions(ctx, project, service, number, inherit, autoRemove, attachStdin)
|
|
|
+ containerConfig, hostConfig, networkingConfig, err := s.getCreateOptions(ctx, project, service, number, inherit,
|
|
|
+ autoRemove, attachStdin, labels)
|
|
|
if err != nil {
|
|
|
return created, err
|
|
|
}
|
|
|
@@ -725,3 +736,13 @@ func (s *composeService) startService(ctx context.Context, project *types.Projec
|
|
|
}
|
|
|
return nil
|
|
|
}
|
|
|
+
|
|
|
+func mergeLabels(ls ...types.Labels) types.Labels {
|
|
|
+ merged := types.Labels{}
|
|
|
+ for _, l := range ls {
|
|
|
+ for k, v := range l {
|
|
|
+ merged[k] = v
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return merged
|
|
|
+}
|