From 2060cf7d85d1be503bbf72cbcff7451049ef1488 Mon Sep 17 00:00:00 2001 From: null Date: Wed, 20 May 2026 22:44:30 -0500 Subject: [PATCH] fix(scripts): harden docker-test.sh to be Pipeline-only, add safety docs --- scripts/docker-test.sh | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/scripts/docker-test.sh b/scripts/docker-test.sh index 51e6de6..9a88c44 100755 --- a/scripts/docker-test.sh +++ b/scripts/docker-test.sh @@ -1,13 +1,23 @@ #!/usr/bin/env bash # docker-test.sh — Rebuild and redeploy Pipeline locally from scratch. # Cleans only Pipeline Docker resources before building. -# IMPORTANT: Do not add global Docker cleanup here (for example `docker system prune`). -# This script must only stop/remove resources for the Pipeline compose project. +# +# SAFETY: This script ONLY operates on the Pipeline compose project. +# It will NOT stop, remove, or prune containers/images/volumes from +# other projects (bill-tracker, open-webui, portainer, scanopy, etc.). +# +# IMPORTANT: Do not add global Docker cleanup here (e.g. `docker system prune`, +# `docker image prune`, `docker volume prune`). Those commands operate on +# ALL Docker resources system-wide and will destroy other running services. set -euo pipefail cd "$(git rev-parse --show-toplevel)" -echo "=== Stopping and removing Pipeline containers, images, volumes ===" +PROJECT_NAME="$(docker compose config --format '{{.Name}}' 2>/dev/null || echo 'pipeline')" +echo "=== Compose project: ${PROJECT_NAME} ===" +echo "=== Stopping and removing ONLY ${PROJECT_NAME} containers, images, volumes ===" + +# Scoped to this compose project only — does NOT affect other containers. docker compose down --rmi all --volumes --remove-orphans 2>/dev/null || true echo "=== Building and starting all containers ===" @@ -22,4 +32,4 @@ docker compose ps echo "" echo "=== Deploy complete ===" echo 'Frontend: http://localhost:3030' -echo 'Backend: http://localhost:8001' +echo 'Backend: http://localhost:8001' \ No newline at end of file