Browse Source

Merge pull request #991 from gtardif/compose_network_error

Compose network error
Nicolas De loof 4 năm trước cách đây
mục cha
commit
6bf76eebb1
2 tập tin đã thay đổi với 7 bổ sung4 xóa
  1. 4 1
      local/compose.go
  2. 3 3
      local/convergence.go

+ 4 - 1
local/compose.go

@@ -176,7 +176,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
 		}
@@ -675,6 +675,9 @@ func (s *composeService) ensureNetwork(ctx context.Context, n types.NetworkConfi
 	_, err := s.apiClient.NetworkInspect(ctx, n.Name, moby.NetworkInspectOptions{})
 	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)
+			}
 			createOpts := moby.NetworkCreate{
 				// TODO NameSpace Labels
 				Labels:     n.Labels,

+ 3 - 3
local/convergence.go

@@ -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
 		}