Container networks: prefix network name only for internal networks or when name set (different from yaml key). No need to prefix again when connecting containers

Signed-off-by: Guillame Tardif <guillaume.tardif@gmail.com>
This commit is contained in:
Guillame Tardif 2020-11-30 14:50:03 +01:00
parent d24ffd97a0
commit b1970f618c
2 changed files with 5 additions and 6 deletions

View File

@ -59,7 +59,7 @@ func (s *composeService) Up(ctx context.Context, project *types.Project, detach
return err
}
for k, network := range project.Networks {
if !network.External.External && network.Name != "" {
if !network.External.External && network.Name == k {
network.Name = fmt.Sprintf("%s_%s", project.Name, k)
project.Networks[k] = network
}
@ -559,9 +559,8 @@ func (s *composeService) ensureNetwork(ctx context.Context, n types.NetworkConfi
if err != nil {
if errdefs.IsNotFound(err) {
if n.External.External {
return fmt.Errorf("Network %s declared as external, but could not be found", n.Name)
return fmt.Errorf("network %s declared as external, but could not be found", n.Name)
}
createOpts := moby.NetworkCreate{
// TODO NameSpace Labels
Labels: n.Labels,

View File

@ -240,9 +240,9 @@ func (s *composeService) runContainer(ctx context.Context, project *types.Projec
return err
}
id := created.ID
for net := range service.Networks {
name := fmt.Sprintf("%s_%s", project.Name, net)
err = s.connectContainerToNetwork(ctx, id, service.Name, name)
for netName := range service.Networks {
network := project.Networks[netName]
err = s.connectContainerToNetwork(ctx, id, service.Name, network.Name)
if err != nil {
return err
}