From: Jérôme Benoit Date: Tue, 2 Sep 2025 13:57:59 +0000 (+0200) Subject: chore: add script to update a docker image X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=94249788d31cd2df30399eac641acd6cefe9e7d1;p=freqai-strategies.git chore: add script to update a docker image Signed-off-by: Jérôme Benoit --- 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