thread-master/deploy/scripts/wipe.sh

61 lines
1.7 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
# 全部清除:停 app + infra 容器 + volumesMongo/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 <<EOF
用法: $0 --yes [--kill-orphan]
--yes 確認刪除(必填)
--kill-orphan 一併杀掉宿主上殘留的 old worker / 多餘 gateway
EOF
exit 0
;;
esac
done
[[ "$YES" == "1" ]] || die "這會刪除 Mongo/Redis/MinIO 全部資料。請加 --yes"
load_env
require_cmd docker
log "=== WIPE: stop apps ==="
"$DEPLOY_DIR/scripts/stop.sh" || true
if [[ "$KILL_ORPHAN" == "1" ]]; then
log "=== kill orphan workers / gateways under apps/backend ==="
# 只殺本 repo 的 bin避免誤殺系統程序
pkill -f "$BACKEND_DIR/bin/worker" 2>/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 已停"