#!/usr/bin/env sh set -eu PROJECT_ROOT=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd) cd "$PROJECT_ROOT" if [ ! -f ".env" ] && [ -f ".env.example" ]; then echo "未找到 .env,先从 .env.example 复制一份:" echo " cp .env.example .env" exit 1 fi DATA_DIR_VALUE=$(grep '^DATA_DIR=' .env 2>/dev/null | tail -n 1 | cut -d '=' -f 2- || true) DATA_DIR=${DATA_DIR_VALUE:-./data} mkdir -p "$DATA_DIR" echo "[1/4] 拉取最新代码(如果当前目录是 git 仓库)" if [ -d ".git" ]; then git pull --ff-only else echo "跳过:当前目录不是 git 仓库" fi echo "[2/4] 构建并更新容器" docker compose up -d --build echo "[3/4] 当前容器状态" docker compose ps echo "[4/4] 最近日志" docker compose logs --tail=50 web echo echo "部署完成。应用默认地址:" echo " http://localhost:$(grep '^PORT=' .env 2>/dev/null | tail -n 1 | cut -d '=' -f 2- || echo 10000)"