Skip to content

Commit 67a29cd

Browse files
committed
include IPC,PID,Volumes_From in dependencies detection
Signed-off-by: Nicolas De Loof <[email protected]>
1 parent c417a40 commit 67a29cd

File tree

2 files changed

+27
-8
lines changed

2 files changed

+27
-8
lines changed

loader/validate.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,15 @@ func checkConsistency(project *types.Project) error {
3838
}
3939
}
4040

41-
if strings.HasPrefix(s.NetworkMode, types.NetworkModeServicePrefix) {
42-
serviceName := s.NetworkMode[len(types.NetworkModeServicePrefix):]
41+
if strings.HasPrefix(s.NetworkMode, types.ServicePrefix) {
42+
serviceName := s.NetworkMode[len(types.ServicePrefix):]
4343
if _, err := project.GetServices(serviceName); err != nil {
4444
return fmt.Errorf("service %q not found for network_mode 'service:%s'", serviceName, serviceName)
4545
}
4646
}
4747

48-
if strings.HasPrefix(s.NetworkMode, types.NetworkModeContainerPrefix) {
49-
containerName := s.NetworkMode[len(types.NetworkModeContainerPrefix):]
48+
if strings.HasPrefix(s.NetworkMode, types.ContainerPrefix) {
49+
containerName := s.NetworkMode[len(types.ContainerPrefix):]
5050
if _, err := project.GetByContainerName(containerName); err != nil {
5151
return fmt.Errorf("service with container_name %q not found for network_mode 'container:%s'", containerName, containerName)
5252
}

types/types.go

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -226,10 +226,17 @@ const (
226226
)
227227

228228
const (
229+
// ServicePrefix is the prefix for references pointing to a service
230+
ServicePrefix = "service:"
231+
// ContainerPrefix is the prefix for references pointing to a container
232+
ContainerPrefix = "container:"
233+
229234
// NetworkModeServicePrefix is the prefix for network_mode pointing to a service
230-
NetworkModeServicePrefix = "service:"
235+
// Deprecated prefer ServicePrefix
236+
NetworkModeServicePrefix = ServicePrefix
231237
// NetworkModeContainerPrefix is the prefix for network_mode pointing to a container
232-
NetworkModeContainerPrefix = "container:"
238+
// Deprecated prefer ContainerPrefix
239+
NetworkModeContainerPrefix = ContainerPrefix
233240
)
234241

235242
// GetDependencies retrieve all services this service depends on
@@ -246,9 +253,21 @@ func (s ServiceConfig) GetDependencies() []string {
246253
dependencies.append(link)
247254
}
248255
}
249-
if strings.HasPrefix(s.NetworkMode, NetworkModeServicePrefix) {
250-
dependencies.append(s.NetworkMode[len(NetworkModeServicePrefix):])
256+
if strings.HasPrefix(s.NetworkMode, ServicePrefix) {
257+
dependencies.append(s.NetworkMode[len(ServicePrefix):])
258+
}
259+
if strings.HasPrefix(s.Ipc, ServicePrefix) {
260+
dependencies.append(s.Ipc[len(ServicePrefix):])
261+
}
262+
if strings.HasPrefix(s.Pid, ServicePrefix) {
263+
dependencies.append(s.Pid[len(ServicePrefix):])
251264
}
265+
for _, vol := range s.VolumesFrom {
266+
if !strings.HasPrefix(s.Pid, ContainerPrefix) {
267+
dependencies.append(vol)
268+
}
269+
}
270+
252271
return dependencies.toSlice()
253272
}
254273

0 commit comments

Comments
 (0)