From 14db9e2f3c556df7c42760d79bfbbf2de99bc131 Mon Sep 17 00:00:00 2001 From: "nicolas.dorier" Date: Mon, 1 Jul 2019 16:11:44 +0900 Subject: [PATCH] Generate pull-images.sh with the docker-compose. --- Generated/.gitignore | 3 ++- btcpay-setup.sh | 10 +++++---- .../src/DockerComposeDefinition.cs | 22 ++++++++++++++++--- helpers.sh | 4 ++++ 4 files changed, 31 insertions(+), 8 deletions(-) diff --git a/Generated/.gitignore b/Generated/.gitignore index 77c2d3c..f167377 100644 --- a/Generated/.gitignore +++ b/Generated/.gitignore @@ -1,4 +1,5 @@ *.yml nginx.tmpl *.toml -*.json \ No newline at end of file +*.json +pull-images.sh \ No newline at end of file diff --git a/btcpay-setup.sh b/btcpay-setup.sh index 22abece..2167ca1 100755 --- a/btcpay-setup.sh +++ b/btcpay-setup.sh @@ -416,7 +416,7 @@ WantedBy=multi-user.target" > /etc/systemd/system/btcpayserver.service \"log-opts\": {\"max-size\": \"5m\", \"max-file\": \"3\"} }" > /etc/docker/daemon.json echo "Setting limited log files in /etc/docker/daemon.json" - systemctl restart docker + $START && ! $IS_CHROOT && systemctl restart docker fi echo -e "BTCPay Server systemd configured in /etc/systemd/system/btcpayserver.service\n" @@ -465,9 +465,11 @@ if [[ ! -z "$OLD_BTCPAY_DOCKER_COMPOSE" ]] && [[ "$OLD_BTCPAY_DOCKER_COMPOSE" != docker-compose -f "$OLD_BTCPAY_DOCKER_COMPOSE" down -t "${COMPOSE_HTTP_TIMEOUT:-180}" fi - -$START && btcpay_up -! $START && docker-compose -f "$BTCPAY_DOCKER_COMPOSE" pull +if $START; then + btcpay_up +else + btcpay_pull +fi # Give SSH key to BTCPay if [[ -f "$BTCPAY_HOST_SSHKEYFILE" ]]; then diff --git a/docker-compose-generator/src/DockerComposeDefinition.cs b/docker-compose-generator/src/DockerComposeDefinition.cs index 30626de..17009fe 100644 --- a/docker-compose-generator/src/DockerComposeDefinition.cs +++ b/docker-compose-generator/src/DockerComposeDefinition.cs @@ -33,7 +33,11 @@ namespace DockerGenerator public string GetFilePath() { - return Path.Combine(BuildOutputDirectory, $"docker-compose.{_Name}.yml"); + return GetFilePath($"docker-compose.{_Name}.yml"); + } + public string GetFilePath(string fileName) + { + return Path.Combine(BuildOutputDirectory, fileName); } public void Build() { @@ -83,11 +87,23 @@ namespace DockerGenerator output.Add("services", new YamlMappingNode(Merge(services))); output.Add("volumes", new YamlMappingNode(volumes)); output.Add("networks", new YamlMappingNode(networks)); + + + var dockerImages = ((YamlMappingNode)output["services"]).Children.Select(kv => kv.Value["image"].ToString()).ToArray(); + StringBuilder pullImageSh = new StringBuilder(); + pullImageSh.Append($"#!/bin/bash\n\n"); + foreach (var image in dockerImages) + { + pullImageSh.Append($"docker pull \"{image}\"\n"); + } + var outputFile = GetFilePath("pull-images.sh"); + File.WriteAllText(outputFile, pullImageSh.ToString()); + Console.WriteLine($"Generated {outputFile}"); + var result = serializer.Serialize(output); - var outputFile = GetFilePath(); + outputFile = GetFilePath(); File.WriteAllText(outputFile, result.Replace("''", "")); Console.WriteLine($"Generated {outputFile}"); - Console.WriteLine(); } private KeyValuePair[] Merge(List> services) diff --git a/helpers.sh b/helpers.sh index 7294062..d18cc65 100755 --- a/helpers.sh +++ b/helpers.sh @@ -98,6 +98,10 @@ btcpay_up() { popd > /dev/null } +btcpay_pull() { + . $BTCPAY_BASE_DIRECTORY/Generated/pull-images.sh +} + btcpay_down() { pushd . > /dev/null cd "$(dirname "$BTCPAY_ENV_FILE")"