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{