From 94249788d31cd2df30399eac641acd6cefe9e7d1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Tue, 2 Sep 2025 15:57:59 +0200 Subject: [PATCH] chore: add script to update a docker image MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- scripts/docker-upgrade.sh | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100755 scripts/docker-upgrade.sh diff --git a/scripts/docker-upgrade.sh b/scripts/docker-upgrade.sh new file mode 100755 index 0000000..5ff3550 --- /dev/null +++ b/scripts/docker-upgrade.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env sh +set -eu + +DOCKER_IMAGE="freqtradeorg/freqtrade:stable" + +echo_timestamped() { + command echo "$(date +"%Y-%m-%d %H:%M:%S") - $*" +} + +if ! command -v docker >/dev/null 2>&1; then + echo_timestamped "Error: docker not found in PATH" + exit 1 +fi + +if [ ! -f "docker-compose.yml" ] && [ ! -f "docker-compose.yaml" ]; then + echo_timestamped "Error: docker-compose.yml or docker-compose.yaml not found in current directory" + exit 1 +fi + +echo_timestamped "Info: docker image pull for ${DOCKER_IMAGE}" +local_digest=$(command docker image inspect --format='{{.Id}}' "$DOCKER_IMAGE" 2>/dev/null || command echo "none") +if ! command docker image pull --quiet "$DOCKER_IMAGE"; then + echo_timestamped "Error: docker image pull failed for ${DOCKER_IMAGE}" + exit 1 +fi +remote_digest=$(command docker image inspect --format='{{.Id}}' "$DOCKER_IMAGE" 2>/dev/null || command echo "none") + +if [ "$local_digest" != "$remote_digest" ]; then + echo_timestamped "Info: docker image ${DOCKER_IMAGE} was updated ($local_digest -> $remote_digest), wait for reload..." + echo_timestamped "Info: restarting docker image ${DOCKER_IMAGE}" + command docker compose --progress quiet down + command docker compose --progress quiet up -d + echo_timestamped "Info: restarted docker image ${DOCKER_IMAGE}" +else + echo_timestamped "Info: docker image ${DOCKER_IMAGE} is up to date" +fi -- 2.43.0