@@ -10,6 +10,7 @@ import (
10
10
"github.com/Sirupsen/logrus"
11
11
"github.com/docker/docker/api/types"
12
12
containertypes "github.com/docker/docker/api/types/container"
13
+ "github.com/docker/docker/api/types/network"
13
14
"github.com/docker/libcompose/config"
14
15
composecontainer "github.com/docker/libcompose/docker/container"
15
16
"github.com/docker/libcompose/labels"
@@ -55,9 +56,28 @@ func (s *Service) createContainer(ctx context.Context, namer Namer, oldContainer
55
56
configWrapper .HostConfig .Binds = util .Merge (configWrapper .HostConfig .Binds , volumeBinds (configWrapper .Config .Volumes , & info ))
56
57
}
57
58
59
+ networkConfig := configWrapper .NetworkingConfig
60
+ if configWrapper .HostConfig .NetworkMode != "" && configWrapper .HostConfig .NetworkMode .IsUserDefined () {
61
+ if networkConfig == nil {
62
+ networkConfig = & network.NetworkingConfig {
63
+ EndpointsConfig : map [string ]* network.EndpointSettings {
64
+ string (configWrapper .HostConfig .NetworkMode ): {},
65
+ },
66
+ }
67
+ }
68
+ for key , value := range networkConfig .EndpointsConfig {
69
+
70
+ conf := value
71
+ if value .Aliases == nil {
72
+ value .Aliases = []string {}
73
+ }
74
+ value .Aliases = append (value .Aliases , s .name )
75
+ networkConfig .EndpointsConfig [key ] = conf
76
+ }
77
+ }
58
78
logrus .Debugf ("Creating container %s %#v" , containerName , configWrapper )
59
79
// FIXME(vdemeester): long-term will be container.Create(…)
60
- container , err := composecontainer .Create (ctx , client , containerName , configWrapper .Config , configWrapper .HostConfig , configWrapper . NetworkingConfig )
80
+ container , err := composecontainer .Create (ctx , client , containerName , configWrapper .Config , configWrapper .HostConfig , networkConfig )
61
81
if err != nil {
62
82
return nil , err
63
83
}
0 commit comments