From 67f7b84829bbfc82f05dcc52e6971c2f14d902c0 Mon Sep 17 00:00:00 2001 From: Mehrad Dadar Date: Wed, 23 Feb 2022 21:34:34 +0330 Subject: [PATCH] modified com.docker.compose.depends_on label to contain dependency type Signed-off-by: Mehrad Dadar --- pkg/compose/compose.go | 12 ++++++++++-- pkg/compose/create.go | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/pkg/compose/compose.go b/pkg/compose/compose.go index 1a8d7364..886ae9f7 100644 --- a/pkg/compose/compose.go +++ b/pkg/compose/compose.go @@ -114,8 +114,16 @@ func (s *composeService) projectFromName(containers Containers, projectName stri dependencies := c.Labels[api.DependenciesLabel] if len(dependencies) > 0 { service.DependsOn = types.DependsOnConfig{} - for _, d := range strings.Split(dependencies, ",") { - service.DependsOn[d] = types.ServiceDependency{Condition: ServiceConditionRunningOrHealthy} + for _, dc := range strings.Split(dependencies, ",") { + dcArr := strings.Split(dc, ":") + condition := ServiceConditionRunningOrHealthy + dependency := dcArr[0] + + // backward compatibility + if len(dcArr) > 1 { + condition = dcArr[1] + } + service.DependsOn[dependency] = types.ServiceDependency{Condition: condition} } } project.Services = append(project.Services, service) diff --git a/pkg/compose/create.go b/pkg/compose/create.go index d77e075d..7c3cbfd3 100644 --- a/pkg/compose/create.go +++ b/pkg/compose/create.go @@ -433,7 +433,7 @@ func (s *composeService) prepareLabels(service types.ServiceConfig, number int) var dependencies []string for s := range service.DependsOn { - dependencies = append(dependencies, s) + dependencies = append(dependencies, s+":"+service.DependsOn[s].Condition) } labels[api.DependenciesLabel] = strings.Join(dependencies, ",") return labels, nil