| @@ -0,0 +1,46 @@ | |||||
| #!/usr/bin/env bash | |||||
| set -Eeu | |||||
| # docker compose 便捷包装:自动补齐 --env-file / -f / -p 固定参数。 | |||||
| # | |||||
| # 用法: | |||||
| # ./dc.sh <env> <compose 子命令及参数...> | |||||
| # <env> 为 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 <test|uat> <docker compose 子命令...>" >&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" "$@" | |||||