Merge pull request 'fix(ci): recreate named compose containers without collisions' (#10) from fix/ci-compose-reup into master
All checks were successful
build-and-deploy / build-push-deploy (push) Successful in 3m35s
All checks were successful
build-and-deploy / build-push-deploy (push) Successful in 3m35s
Reviewed-on: #10
This commit is contained in:
commit
dcb90b3a8b
2 changed files with 49 additions and 1 deletions
|
|
@ -141,7 +141,13 @@ jobs:
|
|||
# osint-dashboard_osint-pgdata (pinned by `name:` in compose).
|
||||
docker compose build --no-cache app ingester camera-service news-scraper news-summarizer || \
|
||||
docker compose build app ingester camera-service news-scraper news-summarizer
|
||||
docker compose up -d --force-recreate
|
||||
# Name-pinned containers (container_name: osint-dashboard, …) collide
|
||||
# when compose tries to create instead of recreate — e.g. leftover from
|
||||
# a different working_dir or a half-failed previous up. down + rm -f
|
||||
# the known names, then up the full ingest profile.
|
||||
chmod +x scripts/compose-reup.sh
|
||||
COMPOSE_PROJECT_NAME=osint-dashboard COMPOSE_PROFILES=ingest \
|
||||
scripts/compose-reup.sh
|
||||
docker image prune -f
|
||||
echo "osint-dashboard deployed; images also on ${PUB}/${OWN}/"
|
||||
|
||||
|
|
|
|||
42
scripts/compose-reup.sh
Executable file
42
scripts/compose-reup.sh
Executable file
|
|
@ -0,0 +1,42 @@
|
|||
#!/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
|
||||
Loading…
Add table
Reference in a new issue