#!/usr/bin/env bash set -euo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" cd "$ROOT" GEOINTEL_ROLLBACK_IMAGE="${GEOINTEL_ROLLBACK_IMAGE:-geointel-all-in-one:previous}" if ! docker image inspect "$GEOINTEL_ROLLBACK_IMAGE" >/dev/null 2>&1; then echo "Rollback image does not exist: ${GEOINTEL_ROLLBACK_IMAGE}" >&2 exit 2 fi echo "Starting rollback image ${GEOINTEL_ROLLBACK_IMAGE} without changing persistent volumes..." GEOINTEL_IMAGE="$GEOINTEL_ROLLBACK_IMAGE" bash deploy/unraid/run-dockerman-container.sh for attempt in $(seq 1 90); do status="$(docker inspect --format '{{if .State.Health}}{{.State.Health.Status}}{{else}}{{.State.Status}}{{end}}' geointel 2>/dev/null || true)" if [ "$status" = "healthy" ]; then LIVE_SMOKE_CONTAINER=geointel bash scripts/live_migration_smoke.sh echo "Rollback completed with healthy image ${GEOINTEL_ROLLBACK_IMAGE}." exit 0 fi if [ "$status" = "unhealthy" ] || [ "$status" = "exited" ] || [ "$status" = "dead" ]; then docker logs --tail 120 geointel >&2 || true exit 1 fi sleep 2 done echo "Rollback container did not become healthy." >&2 docker logs --tail 120 geointel >&2 || true exit 1