Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 

68 строки
1.5 KiB

  1. #!/usr/bin/env bash
  2. set -Eeuo pipefail
  3. # 服务器运行脚本:只加载本地镜像包并启动 compose,不做源码构建。
  4. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  5. cd "$SCRIPT_DIR"
  6. PROJECT_NAME="${PROJECT_NAME:-emp-test}"
  7. ENV_FILE="${ENV_FILE:-.env}"
  8. COMPOSE_FILE="${COMPOSE_FILE:-docker-compose.yml}"
  9. IMAGE_TAR="${IMAGE_TAR:-images.tar}"
  10. log() {
  11. echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*"
  12. }
  13. die() {
  14. echo "ERROR: $*" >&2
  15. exit 1
  16. }
  17. need_cmd() {
  18. command -v "$1" >/dev/null 2>&1 || die "缺少命令:$1"
  19. }
  20. need_cmd docker
  21. if docker compose version >/dev/null 2>&1; then
  22. DC=(docker compose)
  23. elif command -v docker-compose >/dev/null 2>&1; then
  24. DC=(docker-compose)
  25. else
  26. die "未安装 docker compose"
  27. fi
  28. if [[ ! -f "$ENV_FILE" ]]; then
  29. cp .env.example "$ENV_FILE"
  30. die "已生成 $ENV_FILE,请先修改密码、PUBLIC_HOST 和端口后重新执行:sh install.sh"
  31. fi
  32. if [[ ! -f "$COMPOSE_FILE" ]]; then
  33. die "未找到 $COMPOSE_FILE"
  34. fi
  35. if [[ -f "$IMAGE_TAR" ]]; then
  36. log "加载镜像包:$IMAGE_TAR"
  37. docker load -i "$IMAGE_TAR"
  38. else
  39. log "未找到 $IMAGE_TAR,将尝试使用本机已有镜像或在线拉取镜像"
  40. fi
  41. log "启动隔离测试环境:$PROJECT_NAME"
  42. "${DC[@]}" \
  43. --env-file "$ENV_FILE" \
  44. -f "$COMPOSE_FILE" \
  45. -p "$PROJECT_NAME" \
  46. up -d
  47. log "当前容器状态"
  48. "${DC[@]}" \
  49. --env-file "$ENV_FILE" \
  50. -f "$COMPOSE_FILE" \
  51. -p "$PROJECT_NAME" \
  52. ps
  53. log "完成。前端地址请访问 .env 中的 PUBLIC_HOST:ADMIN_HOST_PORT。"