43 lines
1.3 KiB
Bash
43 lines
1.3 KiB
Bash
|
|
#!/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
|