Files
zhimingge/scripts/deploy.sh
T
dekun a1667eac51 Add Docker deployment as the recommended production setup.
Include Dockerfile, docker-compose on port 3130, npm mirror config, deploy scripts, and DOCKER.md; keep PM2 docs as fallback.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-10 21:13:12 +08:00

45 lines
1.0 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# 知命阁(zhiminggeUbuntu 服务器更新脚本
# 用法:cd /opt/zhimingge && bash scripts/deploy.sh
set -euo pipefail
APP_DIR="/opt/zhimingge"
APP_NAME="zhimingge"
APP_PORT="${PORT:-3130}"
cd "$APP_DIR"
echo "==> 拉取最新代码..."
git pull origin main
echo "==> 安装依赖..."
npm ci || npm install
echo "==> 停止 PM2(避免无构建产物时反复重启)..."
pm2 stop "$APP_NAME" 2>/dev/null || true
echo "==> 生产构建..."
npm run build
if [[ ! -f .next/BUILD_ID ]]; then
echo "ERROR: 构建失败,未找到 .next/BUILD_ID,请先解决 npm run build 报错后再启动。"
exit 1
fi
echo "==> 确保日志目录存在..."
mkdir -p logs
echo "==> 启动 PM2..."
if pm2 describe "$APP_NAME" > /dev/null 2>&1; then
pm2 restart "$APP_NAME"
else
pm2 start ecosystem.config.cjs
fi
pm2 save
echo "==> 部署完成,验证 http://127.0.0.1:${APP_PORT} ..."
pm2 status "$APP_NAME"
curl -s -o /dev/null -w "HTTP %{http_code}\n" "http://127.0.0.1:${APP_PORT}" || true