Пример #1
0
        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();
        }
Пример #2
0
        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();
        }