|
@@ -146,6 +146,9 @@ func prepareNetworks(project *types.Project) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func prepareServicesDependsOn(p *types.Project) error {
|
|
func prepareServicesDependsOn(p *types.Project) error {
|
|
|
|
|
+ allServices := types.Project{}
|
|
|
|
|
+ allServices.Services = p.AllServices()
|
|
|
|
|
+
|
|
|
for i, service := range p.Services {
|
|
for i, service := range p.Services {
|
|
|
var dependencies []string
|
|
var dependencies []string
|
|
|
networkDependency := getDependentServiceFromMode(service.NetworkMode)
|
|
networkDependency := getDependentServiceFromMode(service.NetworkMode)
|
|
@@ -178,20 +181,24 @@ func prepareServicesDependsOn(p *types.Project) error {
|
|
|
dependencies = append(dependencies, strings.Split(link, ":")[0])
|
|
dependencies = append(dependencies, strings.Split(link, ":")[0])
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ for d := range service.DependsOn {
|
|
|
|
|
+ dependencies = append(dependencies, d)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
if len(dependencies) == 0 {
|
|
if len(dependencies) == 0 {
|
|
|
continue
|
|
continue
|
|
|
}
|
|
}
|
|
|
- if service.DependsOn == nil {
|
|
|
|
|
- service.DependsOn = make(types.DependsOnConfig)
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
// Verify dependencies exist in the project, whether disabled or not
|
|
// Verify dependencies exist in the project, whether disabled or not
|
|
|
- projAllServices := types.Project{}
|
|
|
|
|
- projAllServices.Services = p.AllServices()
|
|
|
|
|
- deps, err := projAllServices.GetServices(dependencies...)
|
|
|
|
|
|
|
+ deps, err := allServices.GetServices(dependencies...)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
return err
|
|
return err
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ if service.DependsOn == nil {
|
|
|
|
|
+ service.DependsOn = make(types.DependsOnConfig)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
for _, d := range deps {
|
|
for _, d := range deps {
|
|
|
if _, ok := service.DependsOn[d.Name]; !ok {
|
|
if _, ok := service.DependsOn[d.Name]; !ok {
|
|
|
service.DependsOn[d.Name] = types.ServiceDependency{
|
|
service.DependsOn[d.Name] = types.ServiceDependency{
|