func (c *Container) populateAdditionalHostConfig(hostConfig *dockerclient.HostConfig) error { links := map[string]string{} for _, link := range c.service.DependentServices() { if _, ok := c.service.context.Project.Configs[link.Target]; !ok { continue } service, err := c.service.context.Project.CreateService(link.Target) if err != nil { return err } containers, err := service.Containers() if err != nil { return err } if link.Type == project.RelTypeLink { c.addLinks(links, service, link, containers) } else if link.Type == project.RelTypeIpcNamespace { hostConfig, err = c.addIpc(hostConfig, service, containers) } else if link.Type == project.RelTypeNetNamespace { hostConfig, err = c.addNetNs(hostConfig, service, containers) } if err != nil { return err } } hostConfig.Links = []string{} for k, v := range links { hostConfig.Links = append(hostConfig.Links, strings.Join([]string{v, k}, ":")) } for _, v := range c.service.Config().ExternalLinks { hostConfig.Links = append(hostConfig.Links, v) } return nil }