osint-dashboard/scripts/compose-reup.sh
Sirius DevOps f6505ed401 fix(ci): recreate named compose containers without collisions
CI ran `compose up --force-recreate` without the ingest profile, so
compose tried to *create* osint-dashboard while the old name-pinned
container was still running. down + rm -f the known names, then up
--profile ingest. Volumes stay.
2026-08-28 20:35:31 -04:00

42 lines
1.3 KiB
Bash
Executable file

#!/usr/bin/env bash
# Recreate the OSINT compose stack without container_name collisions.
# Named volumes (osint-dashboard_osint-pgdata, camera-snapshots) are kept —
# never pass -v to `compose down`.
#
# Usage: scripts/compose-reup.sh
# Env: COMPOSE_PROJECT_NAME (default osint-dashboard)
# COMPOSE_PROFILES (default ingest — nats/ingester/news/cameras)
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$ROOT"
export COMPOSE_PROJECT_NAME="${COMPOSE_PROJECT_NAME:-osint-dashboard}"
PROFILE="${COMPOSE_PROFILES:-ingest}"
NAMES=(
osint-dashboard
osint-db
osint-nats
osint-ingester
osint-camera-scraper
osint-news-scraper
osint-news-summarizer
)
echo "compose-reup: project=${COMPOSE_PROJECT_NAME} profile=${PROFILE} dir=${ROOT}"
# Stop compose-owned containers first. Foreign/name-pinned leftovers survive this.
docker compose --profile "${PROFILE}" down --remove-orphans || true
# Drop any leftover name-pinned containers compose does not own (the
# "Conflict. The container name is already in use" failure mode).
for c in "${NAMES[@]}"; do
if docker inspect "$c" >/dev/null 2>&1; then
echo "compose-reup: removing leftover ${c}"
docker rm -f "$c" >/dev/null
fi
done
docker compose --profile "${PROFILE}" up -d --no-build "$@"
docker compose --profile "${PROFILE}" ps