Browse Source

allow networks to be merged

feature/auto_ssh
Andrew Camilleri 6 years ago
parent
commit
817e114473
  1. 6
      docker-compose-generator/src/DockerComposeDefinition.cs

6
docker-compose-generator/src/DockerComposeDefinition.cs

@ -57,6 +57,7 @@ namespace DockerGenerator
} }
var services = new List<KeyValuePair<YamlNode, YamlNode>>(); var services = new List<KeyValuePair<YamlNode, YamlNode>>();
var volumes = new List<KeyValuePair<YamlNode, YamlNode>>(); var volumes = new List<KeyValuePair<YamlNode, YamlNode>>();
var networks = new List<KeyValuePair<YamlNode, YamlNode>>();
foreach (var doc in Fragments.Select(f => ParseDocument(f))) foreach (var doc in Fragments.Select(f => ParseDocument(f)))
{ {
@ -69,6 +70,10 @@ namespace DockerGenerator
{ {
volumes.AddRange(fragmentVolumesRoot.Children); volumes.AddRange(fragmentVolumesRoot.Children);
} }
if (doc.Children.ContainsKey("networks") && doc.Children["networks"] is YamlMappingNode fragmentNetworksRoot)
{
networks.AddRange(fragmentNetworksRoot.Children);
}
} }
@ -76,6 +81,7 @@ namespace DockerGenerator
output.Add("version", new YamlScalarNode("3") { Style = YamlDotNet.Core.ScalarStyle.DoubleQuoted }); output.Add("version", new YamlScalarNode("3") { Style = YamlDotNet.Core.ScalarStyle.DoubleQuoted });
output.Add("services", new YamlMappingNode(Merge(services))); output.Add("services", new YamlMappingNode(Merge(services)));
output.Add("volumes", new YamlMappingNode(volumes)); output.Add("volumes", new YamlMappingNode(volumes));
output.Add("networks", new YamlMappingNode(networks));
var result = serializer.Serialize(output); var result = serializer.Serialize(output);
var outputFile = GetFilePath(); var outputFile = GetFilePath();
File.WriteAllText(outputFile, result.Replace("''", "")); File.WriteAllText(outputFile, result.Replace("''", ""));

Loading…
Cancel
Save