Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
|
- #!/usr/bin/env bash
- set -Eeuo pipefail
-
- # 服务器运行脚本:只加载本地镜像包并启动 compose,不做源码构建。
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
- cd "$SCRIPT_DIR"
-
- PROJECT_NAME="${PROJECT_NAME:-emp-test}"
- ENV_FILE="${ENV_FILE:-.env}"
- COMPOSE_FILE="${COMPOSE_FILE:-docker-compose.yml}"
- IMAGE_TAR="${IMAGE_TAR:-images.tar}"
-
- log() {
- echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*"
- }
-
- die() {
- echo "ERROR: $*" >&2
- exit 1
- }
-
- need_cmd() {
- command -v "$1" >/dev/null 2>&1 || die "缺少命令:$1"
- }
-
- need_cmd docker
-
- if docker compose version >/dev/null 2>&1; then
- DC=(docker compose)
- elif command -v docker-compose >/dev/null 2>&1; then
- DC=(docker-compose)
- else
- die "未安装 docker compose"
- fi
-
- if [[ ! -f "$ENV_FILE" ]]; then
- cp .env.example "$ENV_FILE"
- die "已生成 $ENV_FILE,请先修改密码、PUBLIC_HOST 和端口后重新执行:sh install.sh"
- fi
-
- if [[ ! -f "$COMPOSE_FILE" ]]; then
- die "未找到 $COMPOSE_FILE"
- fi
-
- if [[ -f "$IMAGE_TAR" ]]; then
- log "加载镜像包:$IMAGE_TAR"
- docker load -i "$IMAGE_TAR"
- else
- log "未找到 $IMAGE_TAR,将尝试使用本机已有镜像或在线拉取镜像"
- fi
-
- log "启动隔离测试环境:$PROJECT_NAME"
- "${DC[@]}" \
- --env-file "$ENV_FILE" \
- -f "$COMPOSE_FILE" \
- -p "$PROJECT_NAME" \
- up -d
-
- log "当前容器状态"
- "${DC[@]}" \
- --env-file "$ENV_FILE" \
- -f "$COMPOSE_FILE" \
- -p "$PROJECT_NAME" \
- ps
-
- log "完成。前端地址请访问 .env 中的 PUBLIC_HOST:ADMIN_HOST_PORT。"
|