#!/usr/bin/env bash # 全部清除:停 app + infra 容器 + volumes(Mongo/Redis/MinIO 資料全沒) # 用法:./deploy/scripts/wipe.sh --yes set -euo pipefail # shellcheck source=_common.sh source "$(cd "$(dirname "$0")" && pwd)/_common.sh" YES=0 KILL_ORPHAN=0 for a in "$@"; do case "$a" in --yes|-y) YES=1 ;; --kill-orphan) KILL_ORPHAN=1 ;; -h|--help) cat </dev/null || true pkill -f "$BACKEND_DIR/bin/gateway" 2>/dev/null || true pkill -f "$ROOT_DIR/old/backend/bin/" 2>/dev/null || true sleep 0.5 fi log "=== WIPE: docker compose down -v (haixun-infra) ===" # 新 compose compose down -v --remove-orphans 2>/dev/null || true # 舊路徑同名 project 也清 if [[ -f "$ROOT_DIR/old/infra/docker-compose.yml" ]]; then docker compose --env-file "$ENV_FILE_RESOLVED" \ -f "$ROOT_DIR/old/infra/docker-compose.yml" \ down -v --remove-orphans 2>/dev/null || true fi # 殘餘 volume 名稱 for v in haixun-infra_mongo_data haixun-infra_redis_data haixun-infra_minio_data \ mongo_data redis_data minio_data; do docker volume rm "$v" 2>/dev/null || true done rm -f "$RUN_DIR"/*.pid 2>/dev/null || true log "wipe done — 資料已清空,infra 已停"