From 3c561e7017b4ff4071dca8f2e7103ea730f1ffe5 Mon Sep 17 00:00:00 2001 From: Nick Sieger Date: Wed, 17 Aug 2022 11:48:45 -0500 Subject: [PATCH] create: pull all services logic out of loop; add DependsOn deps Signed-off-by: Nick Sieger --- pkg/compose/create.go | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/pkg/compose/create.go b/pkg/compose/create.go index 3ee694b0..74a2184a 100644 --- a/pkg/compose/create.go +++ b/pkg/compose/create.go @@ -146,6 +146,9 @@ func prepareNetworks(project *types.Project) { } func prepareServicesDependsOn(p *types.Project) error { + allServices := types.Project{} + allServices.Services = p.AllServices() + for i, service := range p.Services { var dependencies []string networkDependency := getDependentServiceFromMode(service.NetworkMode) @@ -178,20 +181,24 @@ func prepareServicesDependsOn(p *types.Project) error { dependencies = append(dependencies, strings.Split(link, ":")[0]) } + for d := range service.DependsOn { + dependencies = append(dependencies, d) + } + if len(dependencies) == 0 { continue } + + // Verify dependencies exist in the project, whether disabled or not + deps, err := allServices.GetServices(dependencies...) + if err != nil { + return err + } + if service.DependsOn == nil { service.DependsOn = make(types.DependsOnConfig) } - // Verify dependencies exist in the project, whether disabled or not - projAllServices := types.Project{} - projAllServices.Services = p.AllServices() - deps, err := projAllServices.GetServices(dependencies...) - if err != nil { - return err - } for _, d := range deps { if _, ok := service.DependsOn[d.Name]; !ok { service.DependsOn[d.Name] = types.ServiceDependency{