33 lines
1.0 KiB
Bash
33 lines
1.0 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
BASE_DIR="${REPO_DIR:-$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)}"
|
|
ENV_FILE="${ENV_FILE:-/home/m/assistant-deploy/production-compose.env}"
|
|
COMPOSE_FILE="$BASE_DIR/deploy/docker-compose.prod.yml"
|
|
|
|
set -a
|
|
. "$ENV_FILE"
|
|
set +a
|
|
|
|
compose() { docker compose --env-file "$ENV_FILE" -f "$COMPOSE_FILE" "$@"; }
|
|
stable_services=(creator-web core-runtime cognitive-worker research-runtime)
|
|
stable_ids() {
|
|
local service container id
|
|
for service in "${stable_services[@]}"; do
|
|
container="assistant-${service}-1"
|
|
id=$(docker inspect -f '{{.Id}}' "$container" 2>/dev/null || true)
|
|
[[ -n "$id" ]] || { echo "stable container missing: $container" >&2; return 1; }
|
|
printf '%s=%s\n' "$service" "$id"
|
|
done
|
|
}
|
|
|
|
before=$(stable_ids)
|
|
compose up -d --no-build --no-deps supervisor
|
|
after=$(stable_ids)
|
|
[[ "$before" == "$after" ]] || {
|
|
echo "stable container IDs changed while updating supervisor" >&2
|
|
diff -u <(printf '%s\n' "$before") <(printf '%s\n' "$after") >&2 || true
|
|
exit 1
|
|
}
|
|
printf '%s\n' "$after"
|