浏览代码

Always use a default network if no other networks are set.

also add network labels.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
Daniel Nephin 8 年之前
父节点
当前提交
644d30369a
共有 1 个文件被更改,包括 14 次插入2 次删除
  1. 14 2
      cli/command/stack/deploy.go

+ 14 - 2
cli/command/stack/deploy.go

@@ -150,6 +150,9 @@ func createNetworks(
 		existingNetworkMap[network.Name] = network
 	}
 
+	// TODO: only add default network if it's used
+	networks["default"] = composetypes.NetworkConfig{}
+
 	for internalName, network := range networks {
 		if network.External.Name != "" {
 			continue
@@ -161,8 +164,7 @@ func createNetworks(
 		}
 
 		createOpts := types.NetworkCreate{
-			// TODO: support network labels from compose file
-			Labels:  getStackLabels(namespace, nil),
+			Labels:  getStackLabels(namespace, network.Labels),
 			Driver:  network.Driver,
 			Options: network.DriverOpts,
 		}
@@ -191,6 +193,16 @@ func convertNetworks(
 	namespace string,
 	name string,
 ) []swarm.NetworkAttachmentConfig {
+	if len(networks) == 0 {
+		return []swarm.NetworkAttachmentConfig{
+			{
+				// TODO: only do this name mangling in one function
+				Target:  namespace + "_" + "default",
+				Aliases: []string{name},
+			},
+		}
+	}
+
 	nets := []swarm.NetworkAttachmentConfig{}
 	for networkName, network := range networks {
 		nets = append(nets, swarm.NetworkAttachmentConfig{