#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PKG_ROOT="$ROOT_DIR" ENV_FILE="$PKG_ROOT/compose/.env" COMPOSE_FILE="$PKG_ROOT/compose/docker-compose.yml" # load COMPOSE_PROJECT_NAME if provided in compose/.env if [[ -f "$ENV_FILE" ]]; then set -a; source "$ENV_FILE"; set +a; fi PROJECT="${COMPOSE_PROJECT_NAME:-argus-client}" info(){ echo -e "\033[34m[UNINSTALL-GPU]\033[0m $*"; } err(){ echo -e "\033[31m[ERROR]\033[0m $*" >&2; } # Compose 检测:优先 docker compose(v2),回退 docker-compose(v1) require_compose(){ if docker compose version >/dev/null 2>&1; then return 0; fi if command -v docker-compose >/dev/null 2>&1 && docker-compose version >/dev/null 2>&1; then return 0; fi err "未检测到 Docker Compose,请安装 docker compose v2 或 docker-compose v1"; exit 1 } require_compose if [[ -f "$ENV_FILE" ]]; then info "stopping compose project (project=$PROJECT)" docker compose -p "$PROJECT" --env-file "$ENV_FILE" -f "$COMPOSE_FILE" down --remove-orphans || true else info "compose/.env not found; attempting to remove container by name" fi # remove warmup container if still running docker rm -f argus-net-warmup >/dev/null 2>&1 || true # remove node container if present docker rm -f argus-metric-gpu-node-swarm >/dev/null 2>&1 || true info "uninstall completed"