private void Run(DockerComposition composition, string name, string output) { var fragmentLocation = Environment.GetEnvironmentVariable("INSIDE_CONTAINER") == "1" ? "app" : "docker-compose-generator"; fragmentLocation = FindRoot(fragmentLocation); fragmentLocation = Path.GetFullPath(Path.Combine(fragmentLocation, "docker-fragments")); var fragments = new HashSet <string>(); switch (composition.SelectedProxy) { case "nginx": fragments.Add("nginx"); fragments.Add("btcpayserver-nginx"); break; case "traefik": fragments.Add("traefik"); fragments.Add("traefik-labels"); break; case "no-reverseproxy": case "none": case "": fragments.Add("btcpayserver-noreverseproxy"); break; } fragments.Add("btcpayserver"); fragments.Add("nbxplorer"); fragments.Add("postgres"); foreach (var crypto in CryptoDefinition.GetDefinitions()) { if (!composition.SelectedCryptos.Contains(crypto.Crypto)) { continue; } fragments.Add(crypto.CryptoFragment); if (composition.SelectedLN == "clightning" && crypto.CLightningFragment != null) { fragments.Add(crypto.CLightningFragment); } if (composition.SelectedLN == "lnd" && crypto.LNDFragment != null) { fragments.Add(crypto.LNDFragment); } } foreach (var fragment in composition.AdditionalFragments) { fragments.Add(fragment.Trim()); } fragments = fragments.Where(s => !composition.ExcludeFragments.Contains(s)).ToHashSet(); var def = new DockerComposeDefinition(name, fragments.ToList()); def.FragmentLocation = fragmentLocation; def.BuildOutputDirectory = output; def.Build(); }
private void Run(DockerComposition composition, string name, string output) { var fragmentLocation = Environment.GetEnvironmentVariable("INSIDE_CONTAINER") == "1" ? "app" : "docker-compose-generator"; fragmentLocation = FindRoot(fragmentLocation); fragmentLocation = Path.GetFullPath(Path.Combine(fragmentLocation, "docker-fragments")); var fragments = new List <string>(); if (composition.SelectedProxy == "nginx") { fragments.Add("nginx"); } else { fragments.Add("btcpayserver-noreverseproxy"); } fragments.Add("btcpayserver"); foreach (var crypto in CryptoDefinition.GetDefinitions()) { if (!composition.SelectedCryptos.Contains(crypto.Crypto)) { continue; } fragments.Add(crypto.CryptoFragment); if (composition.SelectedLN == "clightning" && crypto.CLightningFragment != null) { fragments.Add(crypto.CLightningFragment); } if (composition.SelectedLN == "lnd" && crypto.LNDFragment != null) { fragments.Add(crypto.LNDFragment); } } foreach (var fragment in composition.AdditionalFragments) { fragments.Add(fragment.Trim()); } var def = new DockerComposeDefinition(name, fragments); def.FragmentLocation = fragmentLocation; def.BuildOutputDirectory = output; def.Build(); }