#!/usr/bin/env bash set -Eeu # docker compose 便捷包装:自动补齐 --env-file / -f / -p 固定参数。 # # 用法: # ./dc.sh # 为 test 或 uat(也接受 emp-test / emp-uat) # # 示例: # ./dc.sh uat up -d emp-ws # 重建并启动 emp-ws # ./dc.sh uat ps # 查看容器状态 # ./dc.sh uat logs -f emp-monitor # 跟踪日志 # ./dc.sh test up -d # 启动 test 全部服务 # # 默认在当前目录找 docker-compose.yml 和 .env; # 也可用环境变量覆盖运行目录: # RUNTIME_DIR=/home/admin-x99/emp/emp-uat/runtime ./dc.sh uat ps usage() { echo "用法: $0 " >&2 echo "示例: $0 uat up -d emp-ws" >&2 exit 1 } [[ "$#" -ge 2 ]] || usage ENV_ARG="$1" shift case "$ENV_ARG" in test|emp-test) PROJECT="emp-test" ;; uat|emp-uat) PROJECT="emp-uat" ;; *) echo "ERROR: 未知环境 '$ENV_ARG',只支持 test 或 uat" >&2; usage ;; esac # 运行目录:默认当前目录,可用 RUNTIME_DIR 覆盖 RUNTIME_DIR="${RUNTIME_DIR:-$PWD}" COMPOSE_FILE="$RUNTIME_DIR/docker-compose.yml" ENV_FILE="$RUNTIME_DIR/.env" [[ -f "$COMPOSE_FILE" ]] || { echo "ERROR: 找不到 $COMPOSE_FILE" >&2; exit 1; } [[ -f "$ENV_FILE" ]] || { echo "ERROR: 找不到 $ENV_FILE" >&2; exit 1; } set -x docker compose --env-file "$ENV_FILE" -f "$COMPOSE_FILE" -p "$PROJECT" "$@"