Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 

47 řádky
1.4 KiB

  1. #!/usr/bin/env bash
  2. set -Eeu
  3. # docker compose 便捷包装:自动补齐 --env-file / -f / -p 固定参数。
  4. #
  5. # 用法:
  6. # ./dc.sh <env> <compose 子命令及参数...>
  7. # <env> 为 test 或 uat(也接受 emp-test / emp-uat)
  8. #
  9. # 示例:
  10. # ./dc.sh uat up -d emp-ws # 重建并启动 emp-ws
  11. # ./dc.sh uat ps # 查看容器状态
  12. # ./dc.sh uat logs -f emp-monitor # 跟踪日志
  13. # ./dc.sh test up -d # 启动 test 全部服务
  14. #
  15. # 默认在当前目录找 docker-compose.yml 和 .env;
  16. # 也可用环境变量覆盖运行目录:
  17. # RUNTIME_DIR=/home/admin-x99/emp/emp-uat/runtime ./dc.sh uat ps
  18. usage() {
  19. echo "用法: $0 <test|uat> <docker compose 子命令...>" >&2
  20. echo "示例: $0 uat up -d emp-ws" >&2
  21. exit 1
  22. }
  23. [[ "$#" -ge 2 ]] || usage
  24. ENV_ARG="$1"
  25. shift
  26. case "$ENV_ARG" in
  27. test|emp-test) PROJECT="emp-test" ;;
  28. uat|emp-uat) PROJECT="emp-uat" ;;
  29. *) echo "ERROR: 未知环境 '$ENV_ARG',只支持 test 或 uat" >&2; usage ;;
  30. esac
  31. # 运行目录:默认当前目录,可用 RUNTIME_DIR 覆盖
  32. RUNTIME_DIR="${RUNTIME_DIR:-$PWD}"
  33. COMPOSE_FILE="$RUNTIME_DIR/docker-compose.yml"
  34. ENV_FILE="$RUNTIME_DIR/.env"
  35. [[ -f "$COMPOSE_FILE" ]] || { echo "ERROR: 找不到 $COMPOSE_FILE" >&2; exit 1; }
  36. [[ -f "$ENV_FILE" ]] || { echo "ERROR: 找不到 $ENV_FILE" >&2; exit 1; }
  37. set -x
  38. docker compose --env-file "$ENV_FILE" -f "$COMPOSE_FILE" -p "$PROJECT" "$@"