部署正式环境
This commit is contained in:
Executable
+38
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env bash
|
||||
# ============================================================
|
||||
# www 部署脚本:上传构建产物与部署配置到正式服务器
|
||||
# 上传内容:.output/public/、nginx.conf、docker-compose.yml
|
||||
# 目标:luxsin-api2:/data/project/dashboard/www
|
||||
# 用法:./scripts/deploy-www.sh
|
||||
# ============================================================
|
||||
set -euo pipefail
|
||||
|
||||
REMOTE_HOST="luxsin-api2"
|
||||
REMOTE_DIR="/data/project/dashboard/www"
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
WWW_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
||||
|
||||
# 本地需先完成静态构建(nuxt generate,ssr:false 产出 .output/public/index.html)
|
||||
if [ ! -f "${WWW_DIR}/.output/public/index.html" ]; then
|
||||
echo "❌ 本地缺少 ${WWW_DIR}/.output/public/index.html,请先执行:"
|
||||
echo " cd ${WWW_DIR} && pnpm generate"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "==> 确保远程目录存在"
|
||||
ssh "${REMOTE_HOST}" "mkdir -p ${REMOTE_DIR}/.output/public"
|
||||
|
||||
echo "==> 同步 .output/public/(--delete:删除远端已失效的旧产物)"
|
||||
rsync -avz --delete -e ssh \
|
||||
"${WWW_DIR}/.output/public/" "${REMOTE_HOST}:${REMOTE_DIR}/.output/public/"
|
||||
|
||||
echo "==> 上传 nginx.conf / docker-compose.yml"
|
||||
rsync -avz -e ssh \
|
||||
"${WWW_DIR}/nginx.conf" \
|
||||
"${WWW_DIR}/docker-compose.yml" \
|
||||
"${REMOTE_HOST}:${REMOTE_DIR}/"
|
||||
|
||||
echo "✅ 上传完成:${REMOTE_HOST}:${REMOTE_DIR}"
|
||||
echo "下一步(在服务器上执行):"
|
||||
echo " cd ${REMOTE_DIR} && docker compose up -d"
|
||||
Reference in New Issue
Block a user