Merge: replace watchtower with cron, bump infra module to v1.1.0

This commit is contained in:
ZdenekSrotyr 2026-04-21 16:47:05 +02:00
commit 3dcdc52faf

View file

@ -82,18 +82,26 @@ fi
docker compose -f docker-compose.yml -f docker-compose.prod.yml $COMPOSE_PROFILES_ARG pull docker compose -f docker-compose.yml -f docker-compose.prod.yml $COMPOSE_PROFILES_ARG pull
docker compose -f docker-compose.yml -f docker-compose.prod.yml $COMPOSE_PROFILES_ARG up -d docker compose -f docker-compose.yml -f docker-compose.prod.yml $COMPOSE_PROFILES_ARG up -d
# --- 6. Watchtower (auto-pull new images) --- # --- 6. Auto-upgrade via cron (pullne nový tag každých 5 min) ---
if [ "$UPGRADE_MODE" = "auto" ]; then if [ "$UPGRADE_MODE" = "auto" ]; then
# Odstraň starý watchtower pokud existuje (pro idempotenci) cat > /usr/local/bin/agnes-auto-upgrade.sh <<'SCRIPTEOF'
docker rm -f agnes-watchtower 2>/dev/null || true #!/bin/bash
docker run -d \ # Spouští se z cronu — pullne nový image, pokud je, a restartne containers.
--name agnes-watchtower \ set -euo pipefail
--restart=unless-stopped \ cd /opt/agnes
-v /var/run/docker.sock:/var/run/docker.sock \ BEFORE=$(docker images --no-trunc --format '{{.Digest}}' ghcr.io/keboola/agnes-the-ai-analyst:$${AGNES_TAG:-stable} | head -1)
containrrr/watchtower \ docker compose -f docker-compose.yml -f docker-compose.prod.yml pull >/dev/null 2>&1
--interval 300 \ AFTER=$(docker images --no-trunc --format '{{.Digest}}' ghcr.io/keboola/agnes-the-ai-analyst:$${AGNES_TAG:-stable} | head -1)
--cleanup \ if [ "$BEFORE" != "$AFTER" ]; then
--include-restarting echo "$(date): new image digest — recreating containers"
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d
docker image prune -f >/dev/null 2>&1
fi
SCRIPTEOF
chmod +x /usr/local/bin/agnes-auto-upgrade.sh
# Přidat do crontab (idempotentně — `sort -u` vyhodí duplikáty)
(crontab -l 2>/dev/null; echo "*/5 * * * * AGNES_TAG=$IMAGE_TAG /usr/local/bin/agnes-auto-upgrade.sh >> /var/log/agnes-auto-upgrade.log 2>&1") | sort -u | crontab -
fi fi
echo "=== [Agnes $CUSTOMER_NAME $ROLE] Startup complete at $(date) ===" echo "=== [Agnes $CUSTOMER_NAME $ROLE] Startup complete at $(date) ==="