Merge: replace watchtower with cron, bump infra module to v1.1.0
This commit is contained in:
commit
3dcdc52faf
1 changed files with 19 additions and 11 deletions
|
|
@ -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) ==="
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue