|
|
|
@@ -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" "$@" |