示例#1
0
        private async Task <bool> CheckLink(DockerInfo info, string path)
        {
            if (path == null)
            {
                return(true);
            }
            var link = info.GetGithubLinkOf(path);
            var resp = await client.GetAsync(link);

            if (!resp.IsSuccessStatusCode)
            {
                Console.WriteLine($"\tBroken link detected for image {info.Image} ({link})");
                return(false);
            }
            return(true);
        }
示例#2
0
        private DockerInfo GetDockerInfo(Image image)
        {
            DockerInfo dockerInfo = new DockerInfo();
            var        name       = $"{image.User}/{image.Name}";
            bool       firstTry   = true;

retry:
            switch (name)
            {
            case "btglnd":
                dockerInfo.DockerFilePath = "BTCPayServer.Dockerfile";
                dockerInfo.GitLink        = "https://github.com/vutov/lnd";
                dockerInfo.GitRef         = "master";
                break;

            case "docker-compose-builder":
                dockerInfo.DockerFilePathARM32v7 = "linuxarm32v7.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/docker-compose-builder";
                dockerInfo.GitRef  = $"v{image.Tag}";
                break;

            case "docker-compose-generator":
                dockerInfo.DockerFilePath        = "docker-compose-generator/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "docker-compose-generator/linuxarm32v7.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/btcpayserver-docker";
                dockerInfo.GitRef  = $"dcg-latest";
                break;

            case "docker-bitcoingold":
                dockerInfo.DockerFilePath = $"bitcoingold/{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/Vutov/docker-bitcoin";
                dockerInfo.GitRef         = "master";
                break;

            case "lightning":
                dockerInfo.DockerFilePath        = $"Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "contrib/linuxarm32v7.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/lightning";
                dockerInfo.GitRef  = $"basedon-{image.Tag}";
                break;

            case "groestlcoin/lightning":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/Groestlcoin/lightning";
                dockerInfo.GitRef         = $"{image.Tag}";
                break;

            case "lightning-charge":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/ElementsProject/lightning-charge";
                dockerInfo.GitRef         = $"v{image.Tag.Replace("-standalone", "")}";
                break;

            case "docker-bitcoinplus":
                dockerInfo.DockerFilePath = $"bitcoinplus/{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/ChekaZ/docker";
                dockerInfo.GitRef         = "master";
                break;

            case "groestlcoin-lightning-charge":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/Groestlcoin/groestlcoin-lightning-charge";
                dockerInfo.GitRef         = $"v{image.Tag.Substring("version-".Length)}";
                break;

            case "groestlcoin-spark":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/Groestlcoin/groestlcoin-spark";
                dockerInfo.GitRef         = $"v{image.Tag.Substring("version-".Length)}";
                break;

            case "librepatron":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/JeffVandrewJr/patron";
                dockerInfo.GitRef         = $"v{image.Tag}";
                break;

            case "isso":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/JeffVandrewJr/isso";
                dockerInfo.GitRef         = $"patron.{image.Tag.Substring("atron.".Length)}";
                break;

            case "docker-woocommerce":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/btcpayserver/docker-woocommerce";
                dockerInfo.GitRef         = $"v{image.Tag}";
                break;

            case "mariadb":
                dockerInfo.DockerFilePath = $"{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/docker-library/mariadb";
                dockerInfo.GitRef         = $"master";
                break;

            case "docker-trezarcoin":
                dockerInfo.DockerFilePath = $"trezarcoin/1.2.0/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/ChekaZ/docker";
                dockerInfo.GitRef         = "master";
                break;

            case "lnd":
                dockerInfo.DockerFilePath        = "linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "linuxarm32v7.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/lnd";
                dockerInfo.GitRef  = $"basedon-{image.Tag}";
                break;

            case "bitcoin":
                dockerInfo.DockerFilePath        = $"Bitcoin/{image.Tag}/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Bitcoin/{image.Tag}/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Bitcoin/{image.Tag}/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef  = $"Bitcoin/{image.Tag}";
                break;

            case "tor":
                dockerInfo.DockerFilePath        = $"Tor/{image.Tag}/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Tor/{image.Tag}/linuxarm32v7.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef  = $"Tor/{image.Tag}";
                break;

            case "dash":
                dockerInfo.DockerFilePath        = $"Dash/{image.Tag}/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Dash/{image.Tag}/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Dash/{image.Tag}/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef  = $"Dash/{image.Tag}";
                break;

            case "btcpayserver":
                dockerInfo.DockerFilePath        = "amd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "arm32v7.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/btcpayserver";
                dockerInfo.GitRef  = $"v{image.Tag}";
                break;

            case "rtl":
                dockerInfo.DockerFilePath        = "Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "Dockerfile.arm32v7";
                dockerInfo.GitLink = "https://github.com/ShahanaFarooqui/RTL";
                dockerInfo.GitRef  = $"v{image.Tag}";
                break;

            case "nbxplorer":
                dockerInfo.DockerFilePath        = "Dockerfile.linuxamd64";
                dockerInfo.DockerFilePathARM32v7 = "Dockerfile.linuxarm32v7";
                dockerInfo.GitLink = "https://github.com/dgarage/nbxplorer";
                dockerInfo.GitRef  = $"v{image.Tag}";
                break;

            case "btctransmuter":
                dockerInfo.DockerFilePath        = "BtcTransmuter/Dockerfile.linuxamd64";
                dockerInfo.DockerFilePathARM32v7 = "BtcTransmuter/Dockerfile.linuxarm32v7";
                dockerInfo.GitLink = "https://github.com/btcpayserver/btctransmuter";
                dockerInfo.GitRef  = $"v{image.Tag}";
                break;

            case "dogecoin":
                dockerInfo.DockerFilePath = $"dogecoin/{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/rockstardev/docker-bitcoin";
                dockerInfo.GitRef         = "feature/dogecoin";
                break;

            case "docker-bitcore":
                dockerInfo.DockerFilePath = "btx-debian/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/dalijolijo/btcpayserver-docker-bitcore";
                dockerInfo.GitRef         = "master";
                break;

            case "docker-feathercoin":
                dockerInfo.DockerFilePath = $"feathercoin/{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/ChekaZ/docker";
                dockerInfo.GitRef         = "master";
                break;

            case "docker-groestlcoin":
                dockerInfo.DockerFilePath = $"groestlcoin/{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/NicolasDorier/docker-bitcoin";
                dockerInfo.GitRef         = "master";
                break;

            case "docker-viacoin":
                dockerInfo.DockerFilePath = $"viacoin/{image.Tag}/docker-viacoin";
                dockerInfo.GitLink        = "https://github.com/viacoin/docker-viacoin";
                dockerInfo.GitRef         = "master";
                break;

            case "litecoin":
                dockerInfo.DockerFilePath        = $"Litecoin/{NoRevision(image.Tag)}/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Litecoin/{NoRevision(image.Tag)}/linuxarm32v7.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef  = $"Litecoin/{image.Tag}";
                break;

            case "docker-monacoin":
                dockerInfo.DockerFilePath = $"monacoin/{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/wakiyamap/docker-bitcoin";
                dockerInfo.GitRef         = "master";
                break;

            case "nginx":
                dockerInfo.DockerFilePath        = $"stable/stretch/Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"stable/stretch/Dockerfile";
                dockerInfo.GitLink = "https://github.com/nginxinc/docker-nginx";
                dockerInfo.GitRef  = $"master";
                break;

            case "docker-gen":
                dockerInfo.DockerFilePath        = $"linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"linuxarm64v8.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/docker-gen";
                dockerInfo.GitRef  = $"v{image.Tag}";
                break;

            case "letsencrypt-nginx-proxy-companion":
                dockerInfo.DockerFilePath        = $"linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"linuxarm32v7.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/docker-letsencrypt-nginx-proxy-companion";
                dockerInfo.GitRef  = $"v{image.Tag}";
                break;

            case "btcqbo":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/JeffVandrewJr/btcqbo";
                dockerInfo.GitRef         = $"v{image.Tag}";
                break;

            case "redis":
                dockerInfo.DockerFilePath = $"5.0/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/docker-library/redis";
                dockerInfo.GitRef         = $"f1a8498333ae3ab340b5b39fbac1d7e1dc0d628c";
                break;

            case "postgres":
                dockerInfo.DockerFilePath        = $"9.6/Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"9.6/Dockerfile";
                dockerInfo.GitLink = "https://github.com/docker-library/postgres";
                dockerInfo.GitRef  = $"b7cb3c6eacea93be2259381033be3cc435649369";
                break;

            case "traefik":
                dockerInfo.DockerFilePath        = $"scratch/amd64/Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"scratch/arm/Dockerfile";
                dockerInfo.GitLink = "https://github.com/containous/traefik-library-image";
                dockerInfo.GitRef  = $"master";
                break;

            case "spark-wallet":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/shesek/spark-wallet";
                dockerInfo.GitRef         = $"v{image.Tag.Split('-')[0]}";
                break;

            default:
                if (firstTry)
                {
                    name     = $"{image.Name}";
                    firstTry = false;
                    goto retry;
                }
                else
                {
                    return(null);
                }
            }
            dockerInfo.DockerHubLink = image.DockerHubLink;
            dockerInfo.Image         = image;
            return(dockerInfo);
        }
示例#3
0
        private DockerInfo GetDockerInfo(Image image)
        {
            DockerInfo dockerInfo = new DockerInfo();

            switch (image.Name)
            {
            case "btglnd":
                dockerInfo.DockerFilePath = "BTCPayServer.Dockerfile";
                dockerInfo.GitLink        = "https://github.com/vutov/lnd";
                dockerInfo.GitRef         = "master";
                break;

            case "docker-compose-builder":
                dockerInfo.DockerFilePathARM32v7 = "linuxarm32v7.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/docker-compose-builder";
                dockerInfo.GitRef  = $"v{image.Tag}";
                break;

            case "docker-compose-generator":
                dockerInfo.DockerFilePath        = "docker-compose-generator/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "docker-compose-generator/linuxarm32v7.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/btcpayserver-docker";
                dockerInfo.GitRef  = $"dcg-latest";
                break;

            case "docker-bitcoingold":
                dockerInfo.DockerFilePath = $"bitcoingold/{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/Vutov/docker-bitcoin";
                dockerInfo.GitRef         = "master";
                break;

            case "clightning":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/NicolasDorier/lightning";
                dockerInfo.GitRef         = $"basedon-{image.Tag}";
                break;

            case "lnd":
                dockerInfo.DockerFilePath        = "linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "linuxarm32v7.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/lnd";
                dockerInfo.GitRef  = $"basedon-{image.Tag}";
                break;

            case "bitcoin":
                dockerInfo.DockerFilePath        = $"Bitcoin/{image.Tag}/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Bitcoin/{image.Tag}/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Bitcoin/{image.Tag}/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef  = $"Bitcoin/{image.Tag}";
                break;

            case "dash":
                dockerInfo.DockerFilePath        = $"Dash/{image.Tag}/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Dash/{image.Tag}/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Dash/{image.Tag}/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef  = $"Dash/{image.Tag}";
                break;

            case "btcpayserver":
                dockerInfo.DockerFilePath        = "Dockerfile.linuxamd64";
                dockerInfo.DockerFilePathARM32v7 = "Dockerfile.linuxarm32v7";
                dockerInfo.GitLink = "https://github.com/btcpayserver/btcpayserver";
                dockerInfo.GitRef  = $"v{image.Tag}";
                break;

            case "nbxplorer":
                dockerInfo.DockerFilePath        = "Dockerfile.linuxamd64";
                dockerInfo.DockerFilePathARM32v7 = "Dockerfile.linuxarm32v7";
                dockerInfo.GitLink = "https://github.com/dgarage/nbxplorer";
                dockerInfo.GitRef  = $"v{image.Tag}";
                break;

            case "dogecoin":
                dockerInfo.DockerFilePath = $"dogecoin/{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/rockstardev/docker-bitcoin";
                dockerInfo.GitRef         = "feature/dogecoin";
                break;

            case "docker-bitcore":
                dockerInfo.DockerFilePath = "btx-debian/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/dalijolijo/btcpayserver-docker-bitcore";
                dockerInfo.GitRef         = "master";
                break;

            case "docker-feathercoin":
                dockerInfo.DockerFilePath = $"feathercoin/{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/ChekaZ/docker";
                dockerInfo.GitRef         = "master";
                break;

            case "docker-groestlcoin":
                dockerInfo.DockerFilePath = $"groestlcoin/{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/NicolasDorier/docker-bitcoin";
                dockerInfo.GitRef         = "master";
                break;

            case "docker-viacoin":
                dockerInfo.DockerFilePath = $"viacoin/{image.Tag}/docker-viacoin";
                dockerInfo.GitLink        = "https://github.com/viacoin/docker-viacoin";
                dockerInfo.GitRef         = "master";
                break;

            case "docker-litecoin":
                dockerInfo.DockerFilePath = $"litecoin/{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/NicolasDorier/docker-bitcoin";
                dockerInfo.GitRef         = "master";
                break;

            case "docker-monacoin":
                dockerInfo.DockerFilePath = $"monacoin/{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/wakiyamap/docker-bitcoin";
                dockerInfo.GitRef         = "master";
                break;

            case "nginx":
                dockerInfo.DockerFilePath = $"stable/stretch/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/nginxinc/docker-nginx";
                dockerInfo.GitRef         = $"master";
                break;

            case "docker-gen":
                dockerInfo.DockerFilePath        = $"linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"linuxarm32v7.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/docker-gen";
                dockerInfo.GitRef  = $"v{image.Tag}";
                break;

            case "letsencrypt-nginx-proxy-companion":
                dockerInfo.DockerFilePath        = $"linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"linuxarm32v7.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/docker-letsencrypt-nginx-proxy-companion";
                dockerInfo.GitRef  = $"v{image.Tag}";
                break;

            case "btcqbo":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/JeffVandrewJr/btcqbo";
                dockerInfo.GitRef         = $"v{image.Tag}";
                break;

            case "redis":
                dockerInfo.DockerFilePath = $"5.0/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/docker-library/redis";
                dockerInfo.GitRef         = $"f1a8498333ae3ab340b5b39fbac1d7e1dc0d628c";
                break;

            case "postgres":
                dockerInfo.DockerFilePath        = $"9.6/Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"9.6/Dockerfile";
                dockerInfo.GitLink = "https://github.com/docker-library/postgres";
                dockerInfo.GitRef  = $"b7cb3c6eacea93be2259381033be3cc435649369";
                break;

            case "traefik":
                dockerInfo.DockerFilePath        = $"scratch/amd64/Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"scratch/arm/Dockerfile";
                dockerInfo.GitLink = "https://github.com/containous/traefik-library-image";
                dockerInfo.GitRef  = $"master";
                break;

            case "spark-wallet":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/shesek/spark-wallet";
                dockerInfo.GitRef         = $"v{image.Tag.Split('-')[0]}";
                break;

            default:
                return(null);
            }
            dockerInfo.DockerHubLink = image.DockerHubLink;
            dockerInfo.Image         = image;
            return(dockerInfo);
        }
示例#4
0
        private DockerInfo GetDockerInfo(Image image)
        {
            DockerInfo dockerInfo = new DockerInfo();
            var        name       = $"{image.User}/{image.Name}";
            bool       firstTry   = true;

retry:
            switch (name)
            {
            case "pihole":
                dockerInfo.GitLink               = "https://github.com/pi-hole/docker-pi-hole";
                dockerInfo.DockerFilePath        = $"Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Dockerfile";
                dockerInfo.GitRef        = $"{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "eps":
                dockerInfo.DockerFilePath        = $"EPS/{NoRevision(image.Tag)}/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"EPS/{NoRevision(image.Tag)}/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"EPS/{NoRevision(image.Tag)}/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef        = $"EPS/{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "btglnd":
                dockerInfo.DockerFilePath = "Dockerfile";
                dockerInfo.GitLink        = "https://github.com/vutov/lnd";
                dockerInfo.GitRef         = "master";
                break;

            case "docker-compose":
                dockerInfo.DockerFilePath        = $"docker-compose/{NoRevision(image.Tag)}/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"docker-compose/{NoRevision(image.Tag)}/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"docker-compose/{NoRevision(image.Tag)}/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef        = $"docker-compose/{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "docker-compose-generator":
                dockerInfo.DockerFilePath        = "docker-compose-generator/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "docker-compose-generator/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = "docker-compose-generator/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/btcpayserver-docker";
                dockerInfo.GitRef        = $"dcg-latest";
                dockerInfo.SupportedByUs = true;
                break;

            case "docker-bitcoingold":
                dockerInfo.DockerFilePath = $"bitcoingold/{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/Vutov/docker-bitcoin";
                dockerInfo.GitRef         = "master";
                break;

            case "lightning":
                dockerInfo.DockerFilePath        = $"Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "contrib/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = "contrib/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/lightning";
                dockerInfo.GitRef        = $"basedon-{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "groestlcoin/lightning":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/Groestlcoin/lightning";
                dockerInfo.GitRef         = $"{image.Tag}";
                break;

            case "lightning-charge":
                dockerInfo.DockerFilePath        = $"Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "arm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = "arm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/ElementsProject/lightning-charge";
                dockerInfo.GitRef        = $"v{image.Tag.Replace("-standalone", "")}";
                dockerInfo.SupportedByUs = true;
                break;

            case "docker-bitcoinplus":
                dockerInfo.DockerFilePath = $"bitcoinplus/{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/ChekaZ/docker";
                dockerInfo.GitRef         = "master";
                break;

            case "groestlcoin-lightning-charge":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/Groestlcoin/groestlcoin-lightning-charge";
                dockerInfo.GitRef         = $"v{image.Tag.Substring("version-".Length)}";
                break;

            case "groestlcoin-spark":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/Groestlcoin/groestlcoin-spark";
                dockerInfo.GitRef         = $"v{image.Tag.Substring("version-".Length)}";
                break;

            case "librepatron":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/JeffVandrewJr/patron";
                dockerInfo.GitRef         = $"v{image.Tag}";
                break;

            case "electrumx":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/lukechilds/docker-electrumx";
                dockerInfo.GitRef         = $"master";
                break;

            case "eclair":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/ACINQ/eclair";
                dockerInfo.GitRef         = $"v{image.Tag.Substring("release-".Length)}";
                break;

            case "groestlcoin/eclair":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/Groestlcoin/eclair";
                dockerInfo.GitRef         = $"{image.Tag}";
                break;

            case "isso":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/JeffVandrewJr/isso";
                dockerInfo.GitRef         = $"patron.{image.Tag.Substring("atron.".Length)}";
                break;

            case "docker-woocommerce":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/btcpayserver/docker-woocommerce";
                dockerInfo.GitRef         = $"v{image.Tag}";
                break;

            case "mariadb":
                dockerInfo.DockerFilePath = $"{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/docker-library/mariadb";
                dockerInfo.GitRef         = $"master";
                break;

            case "docker-trezarcoin":
                dockerInfo.DockerFilePath = $"trezarcoin/1.2.0/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/ChekaZ/docker";
                dockerInfo.GitRef         = "master";
                break;

            case "lnd":
                dockerInfo.DockerFilePath        = "linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = "linuxarm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/lnd";
                dockerInfo.GitRef        = $"basedon-{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "groestlcoin/lnd":
                dockerInfo.DockerFilePath = "Dockerfile";
                dockerInfo.GitLink        = "https://github.com/Groestlcoin/lnd";
                dockerInfo.GitRef         = $"{image.Tag}";
                dockerInfo.SupportedByUs  = false;
                break;

            case "monero":
                dockerInfo.DockerFilePath = "Dockerfile";
                dockerInfo.GitLink        = "https://github.com/Kukks/monero-docker";
                dockerInfo.GitRef         = $"x86_64";
                break;

            case "bitcoin":
            {
                var tagNoRevision = image.Tag.Split('-').First();
                dockerInfo.DockerFilePath        = $"Bitcoin/{tagNoRevision}/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Bitcoin/{tagNoRevision}/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Bitcoin/{tagNoRevision}/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef        = $"Bitcoin/{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;
            }

            case "elements":
            {
                var tagNoRevision = image.Tag.Split('-').First();
                dockerInfo.DockerFilePath        = $"Elements/{tagNoRevision}/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Elements/{tagNoRevision}/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Elements/{tagNoRevision}/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef  = $"Elements/{image.Tag}";
                break;
            }

            case "tor":
                dockerInfo.DockerFilePath        = $"Tor/{image.Tag}/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Tor/{image.Tag}/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Tor/{image.Tag}/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef        = $"Tor/{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "dash":
                dockerInfo.DockerFilePath        = $"Dash/{image.Tag}/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Dash/{image.Tag}/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Dash/{image.Tag}/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef  = $"Dash/{image.Tag}";
                break;

            case "btcpayserver":
                dockerInfo.DockerFilePath        = "amd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "arm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = "arm64v8.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/btcpayserver";
                // v1.0.5.4$<BTCPAY_BUILD_CONFIGURATION>
                dockerInfo.GitRef        = $"v{image.Tag.Substring(0, image.Tag.IndexOf('$'))}";
                dockerInfo.SupportedByUs = true;
                break;

            case "rtl":
                dockerInfo.DockerFilePath        = "Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "Dockerfile.arm32v7";
                dockerInfo.DockerFilePathARM64v8 = "Dockerfile.arm64v8";
                dockerInfo.GitLink       = "https://github.com/ShahanaFarooqui/RTL";
                dockerInfo.GitRef        = $"v{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "nbxplorer":
                dockerInfo.DockerFilePath        = "Dockerfile.linuxamd64";
                dockerInfo.DockerFilePathARM32v7 = "Dockerfile.linuxarm32v7";
                dockerInfo.DockerFilePathARM64v8 = "Dockerfile.linuxarm64v8";
                dockerInfo.GitLink       = "https://github.com/dgarage/nbxplorer";
                dockerInfo.GitRef        = $"v{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "ndlc-cli":
                dockerInfo.DockerFilePath        = "amd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "arm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = "arm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/dgarage/ndlc";
                dockerInfo.GitRef        = $"releases/{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "btctransmuter":
                dockerInfo.DockerFilePath        = "Dockerfiles/amd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "Dockerfiles/arm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = "Dockerfiles/arm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/btctransmuter";
                dockerInfo.GitRef        = $"v{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "dogecoin":
                dockerInfo.DockerFilePath = $"Dogecoin/{image.Tag}/linuxamd64.Dockerfile";
                dockerInfo.GitLink        = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef         = $"Dogecoin/{image.Tag}";
                break;

            case "docker-bitcore":
                dockerInfo.DockerFilePath = "docker-bitcored/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/dalijolijo/btcpayserver-docker-bitcore";
                dockerInfo.GitRef         = "master";
                break;

            case "docker-feathercoin":
                dockerInfo.DockerFilePath = $"feathercoin/{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/ChekaZ/docker";
                dockerInfo.GitRef         = "master";
                break;

            case "docker-groestlcoin":
                dockerInfo.DockerFilePath = $"groestlcoin/{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/Groestlcoin/docker-groestlcoin";
                dockerInfo.GitRef         = "master";
                break;

            case "docker-viacoin":
                dockerInfo.DockerFilePath = $"viacoin/{image.Tag}/docker-viacoin";
                dockerInfo.GitLink        = "https://github.com/viacoin/docker-viacoin";
                dockerInfo.GitRef         = "master";
                break;

            case "litecoin":
                dockerInfo.DockerFilePath        = $"Litecoin/{NoRevision(image.Tag)}/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Litecoin/{NoRevision(image.Tag)}/linuxarm32v7.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef  = $"Litecoin/{image.Tag}";
                break;

            case "docker-monacoin":
                dockerInfo.DockerFilePath = $"monacoin/{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/wakiyamap/docker-bitcoin";
                dockerInfo.GitRef         = "master";
                break;

            case "nginx":
                dockerInfo.DockerFilePath        = $"stable/stretch/Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"stable/stretch/Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"stable/stretch/Dockerfile";
                dockerInfo.GitLink       = "https://github.com/nginxinc/docker-nginx";
                dockerInfo.GitRef        = image.Tag;
                dockerInfo.SupportedByUs = true;
                break;

            case "docker-gen":
                dockerInfo.DockerFilePath        = $"linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"linuxarm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/docker-gen";
                dockerInfo.GitRef        = $"v{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "letsencrypt-nginx-proxy-companion":
                dockerInfo.DockerFilePath        = $"linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"linuxarm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/docker-letsencrypt-nginx-proxy-companion";
                dockerInfo.GitRef        = $"v{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "btcqbo":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/JeffVandrewJr/btcqbo";
                dockerInfo.GitRef         = $"v{image.Tag}";
                break;

            case "redis":
                dockerInfo.DockerFilePath = $"5.0/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/docker-library/redis";
                dockerInfo.GitRef         = $"f1a8498333ae3ab340b5b39fbac1d7e1dc0d628c";
                break;

            case "postgres":
                dockerInfo.DockerFilePath        = $"9.6/Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"9.6/Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"9.6/Dockerfile";
                dockerInfo.GitLink       = "https://github.com/docker-library/postgres";
                dockerInfo.GitRef        = $"b7cb3c6eacea93be2259381033be3cc435649369";
                dockerInfo.SupportedByUs = true;
                break;

            case "traefik":
                dockerInfo.DockerFilePath = $"scratch/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/containous/traefik-library-image";
                dockerInfo.GitRef         = $"master";
                break;

            case "spark-wallet":
                dockerInfo.DockerFilePath        = $"Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"arm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"arm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/shesek/spark-wallet";
                dockerInfo.GitRef        = $"v{image.Tag.Split('-')[0]}";
                dockerInfo.SupportedByUs = true;
                break;

            case "c-lightning-rest":
                dockerInfo.DockerFilePath        = $"amd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"arm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"arm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/Ride-The-Lightning/c-lightning-REST";
                dockerInfo.GitRef        = $"v{image.Tag.Split('-')[0]}";
                dockerInfo.SupportedByUs = true;
                break;

            case "btcpayserver-configurator":
                dockerInfo.DockerFilePath        = $"Dockerfiles/amd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Dockerfiles/arm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Dockerfiles/arm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/btcpayserver-configurator";
                dockerInfo.GitRef        = $"v{image.Tag.Split('-')[0]}";
                dockerInfo.SupportedByUs = true;
                break;

            case "thunderhub":
                dockerInfo.DockerFilePath        = $"Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "arm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = "arm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/apotdevin/thunderhub";
                dockerInfo.GitRef        = $"{image.Tag.Split('-')[1]}";
                dockerInfo.SupportedByUs = false;
                break;

            case "python-teos":
                dockerInfo.DockerFilePath        = $"docker/Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"docker/arm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"docker/arm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/talaia-labs/python-teos";
                dockerInfo.GitRef        = $"master";
                dockerInfo.SupportedByUs = false;
                break;

            case "zammad/zammad-docker-compose" when image.Tag.StartsWith("zammad-postgresql-"):
                dockerInfo.DockerFilePath = $"containers/zammad-postgresql/Dockerfile";

                dockerInfo.GitLink       = "https://github.com/zammad/zammad-docker-compose";
                dockerInfo.GitRef        = $"master";
                dockerInfo.SupportedByUs = false;
                break;

            case "zammad/zammad-docker-compose" when image.Tag.StartsWith("zammad-elasticsearch-"):
                dockerInfo.DockerFilePath = $"containers/zammad-elasticsearch/Dockerfile";

                dockerInfo.GitLink       = "https://github.com/zammad/zammad-docker-compose";
                dockerInfo.GitRef        = $"master";
                dockerInfo.SupportedByUs = false;
                break;

            case "zammad/zammad-docker-compose" when image.Tag.StartsWith("zammad-"):
                dockerInfo.DockerFilePath = $"containers/zammad/Dockerfile";

                dockerInfo.GitLink       = "https://github.com/zammad/zammad-docker-compose";
                dockerInfo.GitRef        = $"master";
                dockerInfo.SupportedByUs = false;
                break;

            case "memcached" when image.Tag.EndsWith("alpine"):
                dockerInfo.DockerFilePath = $"alpine/Dockerfile";

                dockerInfo.GitLink       = "https://github.com/docker-library/memcached";
                dockerInfo.GitRef        = $"master";
                dockerInfo.SupportedByUs = false;
                break;

            case "bwt":
                dockerInfo.DockerFilePath        = $"docker/Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"docker/arm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"docker/arm64v8.Dockerfile";
                dockerInfo.GitLink = "https://github.com/bwt-dev/bwt";
                dockerInfo.GitRef  = $"v{image.Tag.Split('-')[0]}";
                break;

            default:
                if (firstTry)
                {
                    name     = $"{image.Name}";
                    firstTry = false;
                    goto retry;
                }
                else
                {
                    return(null);
                }
            }
            dockerInfo.DockerHubLink = image.DockerHubLink;
            dockerInfo.Image         = image;
            return(dockerInfo);
        }
示例#5
0
        private DockerInfo GetDockerInfo(Image image)
        {
            DockerInfo dockerInfo = new DockerInfo();
            var        name       = $"{image.User}/{image.Name}";
            bool       firstTry   = true;

retry:
            switch (name)
            {
            case "pihole":
                dockerInfo.GitLink               = "https://github.com/pi-hole/docker-pi-hole";
                dockerInfo.DockerFilePath        = $"Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Dockerfile";
                dockerInfo.GitRef        = $"{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "eps":
                dockerInfo.DockerFilePath        = $"EPS/{NoRevision(image.Tag)}/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"EPS/{NoRevision(image.Tag)}/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"EPS/{NoRevision(image.Tag)}/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef        = $"EPS/{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "joinmarket":
                dockerInfo.DockerFilePath        = $"JoinMarket/{NoRevision(image.Tag)}/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"JoinMarket/{NoRevision(image.Tag)}/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"JoinMarket/{NoRevision(image.Tag)}/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef        = $"JoinMarket/{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "btglnd":
                dockerInfo.DockerFilePath = "Dockerfile";
                dockerInfo.GitLink        = "https://github.com/vutov/lnd";
                dockerInfo.GitRef         = "master";
                break;

            case "docker-compose":
                dockerInfo.DockerFilePath        = $"docker-compose/{NoRevision(image.Tag)}/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"docker-compose/{NoRevision(image.Tag)}/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"docker-compose/{NoRevision(image.Tag)}/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef        = $"docker-compose/{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "docker-compose-generator":
                dockerInfo.DockerFilePath        = "docker-compose-generator/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "docker-compose-generator/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = "docker-compose-generator/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/btcpayserver-docker";
                dockerInfo.GitRef        = $"dcg-latest";
                dockerInfo.SupportedByUs = true;
                break;

            case "tallycoin_connect":
                dockerInfo.DockerFilePath        = "Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Dockerfile.arm32v7";
                dockerInfo.DockerFilePathARM64v8 = $"Dockerfile.arm64v8";
                dockerInfo.GitLink       = "https://github.com/dennisreimann/tallycoin_connect";
                dockerInfo.GitRef        = $"{image.Tag}";
                dockerInfo.SupportedByUs = false;
                break;

            case "lnd_lit":
                dockerInfo.DockerFilePath        = "Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Dockerfile";
                dockerInfo.GitLink       = "https://github.com/lightninglabs/lightning-terminal";
                dockerInfo.GitRef        = $"{image.Tag}";
                dockerInfo.SupportedByUs = false;
                break;

            case "docker-bitcoingold":
                dockerInfo.DockerFilePath = $"bitcoingold/{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/Vutov/docker-bitcoin";
                dockerInfo.GitRef         = "master";
                break;

            case "lightning":
                dockerInfo.DockerFilePath        = $"Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "contrib/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = "contrib/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/lightning";
                dockerInfo.GitRef        = $"basedon-{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "groestlcoin/lightning":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/Groestlcoin/lightning";
                dockerInfo.GitRef         = $"{image.Tag}";
                break;

            case "chatwoot":
                dockerInfo.DockerFilePath = $"docker/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/chatwoot/chatwoot";
                dockerInfo.GitRef         = $"{image.Tag}";
                dockerInfo.SupportedByUs  = false;
                break;

            case "lightning-charge":
                dockerInfo.DockerFilePath        = $"Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "arm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = "arm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/ElementsProject/lightning-charge";
                dockerInfo.GitRef        = NoRevision($"v{image.Tag.Replace("-standalone", "")}");
                dockerInfo.SupportedByUs = true;
                break;

            case "docker-bitcoinplus":
                dockerInfo.DockerFilePath = $"bitcoinplus/{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/ChekaZ/docker";
                dockerInfo.GitRef         = "master";
                break;

            case "groestlcoin-lightning-charge":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/Groestlcoin/groestlcoin-lightning-charge";
                dockerInfo.GitRef         = $"v{image.Tag.Substring("version-".Length)}";
                break;

            case "groestlcoin-spark":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/Groestlcoin/groestlcoin-spark";
                dockerInfo.GitRef         = $"v{image.Tag.Substring("version-".Length)}";
                break;

            case "librepatron":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/JeffVandrewJr/patron";
                dockerInfo.GitRef         = $"v{image.Tag}";
                break;

            case "electrumx":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/lukechilds/docker-electrumx";
                dockerInfo.GitRef         = $"master";
                break;

            case "eclair":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/ACINQ/eclair";
                dockerInfo.GitRef         = $"v{image.Tag.Substring("release-".Length)}";
                break;

            case "groestlcoin/eclair":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/Groestlcoin/eclair";
                dockerInfo.GitRef         = $"{image.Tag}";
                break;

            case "isso":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/JeffVandrewJr/isso";
                dockerInfo.GitRef         = $"patron.{image.Tag.Substring("atron.".Length)}";
                break;

            case "docker-woocommerce":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/btcpayserver/docker-woocommerce";
                dockerInfo.GitRef         = $"v{image.Tag}";
                break;

            case "mariadb":
                dockerInfo.DockerFilePath = $"{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/docker-library/mariadb";
                dockerInfo.GitRef         = $"master";
                break;

            case "docker-trezarcoin":
                dockerInfo.DockerFilePath = $"trezarcoin/1.2.0/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/ChekaZ/docker";
                dockerInfo.GitRef         = "master";
                break;

            case "lnd":
                dockerInfo.DockerFilePath        = "linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = "linuxarm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/lnd";
                dockerInfo.GitRef        = $"basedon-{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "groestlcoin/lnd":
                dockerInfo.DockerFilePath = "Dockerfile";
                dockerInfo.GitLink        = "https://github.com/Groestlcoin/lnd";
                dockerInfo.GitRef         = $"{image.Tag}";
                dockerInfo.SupportedByUs  = false;
                break;

            case "monero":
                dockerInfo.DockerFilePath = "Dockerfile";
                dockerInfo.GitLink        = "https://github.com/Kukks/monero-docker";
                dockerInfo.GitRef         = $"x86_64";
                break;

            case "bitcoin":
            {
                var tagNoRevision = image.Tag.Split('-').First();
                dockerInfo.DockerFilePath        = $"Bitcoin/{tagNoRevision}/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Bitcoin/{tagNoRevision}/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Bitcoin/{tagNoRevision}/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef        = $"Bitcoin/{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;
            }

            case "elements":
            {
                var tagNoRevision = image.Tag.Split('-').First();
                dockerInfo.DockerFilePath        = $"Elements/{tagNoRevision}/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Elements/{tagNoRevision}/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Elements/{tagNoRevision}/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef  = $"Elements/{image.Tag}";
                break;
            }

            case "tor":
                dockerInfo.DockerFilePath        = $"Tor/{image.Tag}/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Tor/{image.Tag}/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Tor/{image.Tag}/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef        = $"Tor/{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "dash":
                dockerInfo.DockerFilePath        = $"Dash/{image.Tag}/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Dash/{image.Tag}/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Dash/{image.Tag}/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef  = $"Dash/{image.Tag}";
                break;

            case "btcpayserver":
                dockerInfo.DockerFilePath        = "amd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "arm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = "arm64v8.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/btcpayserver";
                // v1.0.5.4$<BTCPAY_BUILD_CONFIGURATION>
                dockerInfo.GitRef        = $"v{image.Tag.Substring(0, image.Tag.IndexOf('$'))}";
                dockerInfo.SupportedByUs = true;
                break;

            case "rtl" when image.Tag != "0.10.0":
                dockerInfo.DockerFilePath        = "docker/Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "docker/Dockerfile.arm32v7";
                dockerInfo.DockerFilePathARM64v8 = "docker/Dockerfile.arm64v8";
                dockerInfo.GitLink       = "https://github.com/Ride-The-Lightning/RTL";
                dockerInfo.GitRef        = $"v{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "rtl":
                dockerInfo.DockerFilePath        = "Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "Dockerfile.arm32v7";
                dockerInfo.DockerFilePathARM64v8 = "Dockerfile.arm64v8";
                dockerInfo.GitLink       = "https://github.com/ShahanaFarooqui/RTL";
                dockerInfo.GitRef        = $"v{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "nbxplorer":
                dockerInfo.DockerFilePath        = "Dockerfile.linuxamd64";
                dockerInfo.DockerFilePathARM32v7 = "Dockerfile.linuxarm32v7";
                dockerInfo.DockerFilePathARM64v8 = "Dockerfile.linuxarm64v8";
                dockerInfo.GitLink       = "https://github.com/dgarage/nbxplorer";
                dockerInfo.GitRef        = $"v{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "ndlc-cli":
                dockerInfo.DockerFilePath        = "amd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "arm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = "arm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/dgarage/ndlc";
                dockerInfo.GitRef        = $"releases/{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "btctransmuter":
                dockerInfo.DockerFilePath        = "Dockerfiles/amd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "Dockerfiles/arm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = "Dockerfiles/arm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/btctransmuter";
                dockerInfo.GitRef        = $"v{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "dogecoin":
                dockerInfo.DockerFilePath = $"Dogecoin/{image.Tag}/linuxamd64.Dockerfile";
                dockerInfo.GitLink        = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef         = $"Dogecoin/{image.Tag}";
                break;

            case "docker-bitcore":
                dockerInfo.DockerFilePath = "docker-bitcored/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/dalijolijo/btcpayserver-docker-bitcore";
                dockerInfo.GitRef         = "master";
                break;

            case "docker-feathercoin":
                dockerInfo.DockerFilePath = $"feathercoin/{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/ChekaZ/docker";
                dockerInfo.GitRef         = "master";
                break;

            case "docker-groestlcoin":
                dockerInfo.DockerFilePath = $"groestlcoin/{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/Groestlcoin/docker-groestlcoin";
                dockerInfo.GitRef         = "master";
                break;

            case "docker-viacoin":
                dockerInfo.DockerFilePath = $"viacoin/{image.Tag}/docker-viacoin";
                dockerInfo.GitLink        = "https://github.com/viacoin/docker-viacoin";
                dockerInfo.GitRef         = "master";
                break;

            case "litecoin":
                dockerInfo.DockerFilePath        = $"Litecoin/{NoRevision(image.Tag)}/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Litecoin/{NoRevision(image.Tag)}/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Litecoin/{NoRevision(image.Tag)}/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef  = $"Litecoin/{image.Tag}";
                break;

            case "docker-monacoin":
                dockerInfo.DockerFilePath = $"monacoin/{image.Tag}/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/wakiyamap/docker-bitcoin";
                dockerInfo.GitRef         = "master";
                break;

            case "nginx":
                dockerInfo.DockerFilePath        = $"stable/stretch/Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"stable/stretch/Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"stable/stretch/Dockerfile";
                dockerInfo.GitLink       = "https://github.com/nginxinc/docker-nginx";
                dockerInfo.GitRef        = image.Tag;
                dockerInfo.SupportedByUs = true;
                break;

            case "docker-gen":
                dockerInfo.DockerFilePath        = $"linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"linuxarm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/docker-gen";
                dockerInfo.GitRef        = $"v{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "letsencrypt-nginx-proxy-companion":
                dockerInfo.DockerFilePath        = $"linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"linuxarm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/docker-letsencrypt-nginx-proxy-companion";
                dockerInfo.GitRef        = $"v{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "btcqbo":
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitLink        = "https://github.com/JeffVandrewJr/btcqbo";
                dockerInfo.GitRef         = $"v{image.Tag}";
                break;

            case "redis":
                dockerInfo.DockerFilePath = $"5.0/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/docker-library/redis";
                dockerInfo.GitRef         = $"f1a8498333ae3ab340b5b39fbac1d7e1dc0d628c";
                break;

            case "postgres":
                dockerInfo.DockerFilePath        = $"Postgres/{NoRevision(image.Tag)}/linuxamd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Postgres/{NoRevision(image.Tag)}/linuxarm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Postgres/{NoRevision(image.Tag)}/linuxarm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/dockerfile-deps";
                dockerInfo.GitRef        = $"Postgres/{image.Tag}";
                dockerInfo.SupportedByUs = true;
                break;

            case "traefik":
                dockerInfo.DockerFilePath = $"scratch/Dockerfile";
                dockerInfo.GitLink        = "https://github.com/containous/traefik-library-image";
                dockerInfo.GitRef         = $"master";
                break;

            case "spark-wallet":
                dockerInfo.DockerFilePath        = $"Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"arm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"arm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/shesek/spark-wallet";
                dockerInfo.GitRef        = $"v{image.Tag.Split('-')[0]}";
                dockerInfo.SupportedByUs = true;
                break;

            case "c-lightning-rest":
                dockerInfo.DockerFilePath        = $"amd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"arm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"arm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/Ride-The-Lightning/c-lightning-REST";
                dockerInfo.GitRef        = $"v{image.Tag.Split('-')[0]}";
                dockerInfo.SupportedByUs = true;
                break;

            case "btcpayserver-configurator":
                dockerInfo.DockerFilePath        = $"Dockerfiles/amd64.Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Dockerfiles/arm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Dockerfiles/arm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/btcpayserver/btcpayserver-configurator";
                dockerInfo.GitRef        = $"v{image.Tag.Split('-')[0]}";
                dockerInfo.SupportedByUs = true;
                break;

            case "thunderhub":
                dockerInfo.DockerFilePath        = $"Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = "arm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = "arm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/apotdevin/thunderhub";
                dockerInfo.GitRef        = $"{image.Tag.Split('-')[1]}";
                dockerInfo.SupportedByUs = false;
                break;

            case "python-teos":
                dockerInfo.DockerFilePath        = $"docker/Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"docker/arm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"docker/arm64v8.Dockerfile";
                dockerInfo.GitLink       = "https://github.com/talaia-labs/python-teos";
                dockerInfo.GitRef        = $"master";
                dockerInfo.SupportedByUs = false;
                break;

            case "zammad/zammad-docker-compose" when image.Tag.StartsWith("zammad-postgresql-"):
                dockerInfo.DockerFilePath = $"containers/zammad-postgresql/Dockerfile";

                dockerInfo.GitLink       = "https://github.com/zammad/zammad-docker-compose";
                dockerInfo.GitRef        = $"master";
                dockerInfo.SupportedByUs = false;
                break;

            case "zammad/zammad-docker-compose" when image.Tag.StartsWith("zammad-elasticsearch-"):
                dockerInfo.DockerFilePath = $"containers/zammad-elasticsearch/Dockerfile";

                dockerInfo.GitLink       = "https://github.com/zammad/zammad-docker-compose";
                dockerInfo.GitRef        = $"master";
                dockerInfo.SupportedByUs = false;
                break;

            case "zammad/zammad-docker-compose" when image.Tag.StartsWith("zammad-"):
                dockerInfo.DockerFilePath = $"containers/zammad/Dockerfile";

                dockerInfo.GitLink       = "https://github.com/zammad/zammad-docker-compose";
                dockerInfo.GitRef        = $"master";
                dockerInfo.SupportedByUs = false;
                break;

            case "memcached" when image.Tag.EndsWith("alpine"):
                dockerInfo.DockerFilePath = $"alpine/Dockerfile";

                dockerInfo.GitLink       = "https://github.com/docker-library/memcached";
                dockerInfo.GitRef        = $"master";
                dockerInfo.SupportedByUs = false;
                break;

            case "bwt":
                dockerInfo.DockerFilePath        = $"docker/Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"docker/arm32v7.Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"docker/arm64v8.Dockerfile";
                dockerInfo.GitLink = "https://github.com/bwt-dev/bwt";
                dockerInfo.GitRef  = $"v{image.Tag.Split('-')[0]}";
                break;

            case "sphinx-relay":
                dockerInfo.DockerFilePath        = $"Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Dockerfile";
                dockerInfo.GitLink = "https://github.com/stakwork/sphinx-relay";
                dockerInfo.GitRef  = $"{image.Tag}";
                break;

            case "lndhub":
                dockerInfo.DockerFilePath        = $"Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Dockerfile";
                dockerInfo.GitLink = "https://github.com/BlueWallet/LndHub";
                dockerInfo.GitRef  = $"{image.Tag.Split("@")[0]}";
                break;

            case "fireflyiii/core":
                dockerInfo.DockerFilePath        = $"Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Dockerfile";
                dockerInfo.GitLink = "https://dev.azure.com/Firefly-III/_git/MainImage";
                dockerInfo.RawLink = "https://dev.azure.com/Firefly-III/66fb773b-063e-42d7-b6a5-e7729a22e8b3/_apis/git/repositories/e9c3dcf8-4533-4ef1-83cc-75527cab3377/items?path=%2FDockerfile&versionDescriptor%5BversionOptions%5D=0&versionDescriptor%5BversionType%5D=0&versionDescriptor%5Bversion%5D=main&resolveLfs=true&%24format=octetStream&api-version=5.0&download=true";
                dockerInfo.GitRef  = null;
                break;

            case "lightninglabs/lightning-terminal":
                dockerInfo.GitLink        = "https://github.com/lightninglabs/lightning-terminal";
                dockerInfo.DockerFilePath = $"Dockerfile";
                dockerInfo.GitRef         = image.Tag.Replace("-path-prefix", "");
                break;

            case "chatwoot/chatwoot":
                dockerInfo.DockerFilePath        = $"docker/Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"docker/Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"docker/Dockerfile";
                dockerInfo.GitLink = "https://github.com/chatwoot/chatwoot";
                dockerInfo.GitRef  = $"{image.Tag}";
                break;

            case "podcastindexorg/podcasting20-helipad":
                dockerInfo.DockerFilePath        = $"umbrel/Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"umbrel/Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"umbrel/Dockerfile";
                dockerInfo.GitLink = "https://github.com/Podcastindex-org/helipad";
                dockerInfo.GitRef  = $"{image.Tag}";
                break;

            case "kukks/nnostr-relay":
                dockerInfo.DockerFilePath        = $"Relay/Dockerfile";
                dockerInfo.DockerFilePathARM32v7 = $"Relay/Dockerfile";
                dockerInfo.DockerFilePathARM64v8 = $"Relay/Dockerfile";
                dockerInfo.GitLink = "https://github.com/kukks/nnostr";
                dockerInfo.GitRef  = $"Relay/{image.Tag}";
                break;

            default:
                if (firstTry)
                {
                    name     = $"{image.Name}";
                    firstTry = false;
                    goto retry;
                }
                else
                {
                    return(null);
                }
            }
            dockerInfo.DockerHubLink = image.DockerHubLink;
            dockerInfo.Image         = image;
            return(dockerInfo);
        }