fix: 修复部署脚本,部署到正确的静态文件目录
- 部署到 /home/novalon/docker-app/novalon-static/ - 添加 Nginx 缓存清除步骤 - 添加生产环境验证步骤
This commit is contained in:
+35
-16
@@ -7,6 +7,8 @@ SERVER_USER="root"
|
|||||||
DEPLOY_ROOT="/home/novalon/docker-app"
|
DEPLOY_ROOT="/home/novalon/docker-app"
|
||||||
PROJECT_NAME="novalon-website"
|
PROJECT_NAME="novalon-website"
|
||||||
DIST_DIR="dist"
|
DIST_DIR="dist"
|
||||||
|
STATIC_DIR="novalon-static"
|
||||||
|
NGINX_CONTAINER="novalon-nginx-secure"
|
||||||
|
|
||||||
while getopts "i:u:p:h" opt; do
|
while getopts "i:u:p:h" opt; do
|
||||||
case $opt in
|
case $opt in
|
||||||
@@ -36,7 +38,7 @@ mkdir -p "$LOG_DIR"
|
|||||||
exec > >(tee -a "$LOG_FILE") 2>&1
|
exec > >(tee -a "$LOG_FILE") 2>&1
|
||||||
|
|
||||||
echo "🚀 开始部署 dist 到服务器 $SERVER_IP"
|
echo "🚀 开始部署 dist 到服务器 $SERVER_IP"
|
||||||
echo "📁 部署目录: $DEPLOY_ROOT/$PROJECT_NAME/$DIST_DIR"
|
echo "📁 部署目录: $DEPLOY_ROOT/$STATIC_DIR"
|
||||||
echo "📋 部署日志: $LOG_FILE"
|
echo "📋 部署日志: $LOG_FILE"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
@@ -61,12 +63,12 @@ echo ""
|
|||||||
echo "📋 步骤3: 备份旧版本..."
|
echo "📋 步骤3: 备份旧版本..."
|
||||||
ssh "$SERVER_USER@$SERVER_IP" "
|
ssh "$SERVER_USER@$SERVER_IP" "
|
||||||
set -e
|
set -e
|
||||||
DEPLOY_PATH='$DEPLOY_ROOT/$PROJECT_NAME/$DIST_DIR'
|
STATIC_PATH='$DEPLOY_ROOT/$STATIC_DIR'
|
||||||
BACKUP_PATH='$DEPLOY_ROOT/$PROJECT_NAME/${DIST_DIR}_backup_$(date +%Y%m%d_%H%M%S)'
|
BACKUP_PATH='$DEPLOY_ROOT/${STATIC_DIR}_backup_$(date +%Y%m%d_%H%M%S)'
|
||||||
|
|
||||||
if [ -d \"\$DEPLOY_PATH\" ]; then
|
if [ -d \"\$STATIC_PATH\" ]; then
|
||||||
echo \"📦 备份到 \$BACKUP_PATH\"
|
echo \"📦 备份到 \$BACKUP_PATH\"
|
||||||
mv \"\$DEPLOY_PATH\" \"\$BACKUP_PATH\"
|
cp -r \"\$STATIC_PATH\" \"\$BACKUP_PATH\"
|
||||||
echo \"✅ 备份完成\"
|
echo \"✅ 备份完成\"
|
||||||
else
|
else
|
||||||
echo \"ℹ️ 无需备份,目录不存在\"
|
echo \"ℹ️ 无需备份,目录不存在\"
|
||||||
@@ -75,40 +77,57 @@ ssh "$SERVER_USER@$SERVER_IP" "
|
|||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "📋 步骤4: 上传 dist 目录..."
|
echo "📋 步骤4: 上传 dist 目录..."
|
||||||
ssh "$SERVER_USER@$SERVER_IP" "mkdir -p '$DEPLOY_ROOT/$PROJECT_NAME'"
|
ssh "$SERVER_USER@$SERVER_IP" "mkdir -p '$DEPLOY_ROOT/$STATIC_DIR'"
|
||||||
rsync -avz --delete "$DIST_DIR/" "$SERVER_USER@$SERVER_IP:$DEPLOY_ROOT/$PROJECT_NAME/$DIST_DIR/"
|
rsync -avz --delete "$DIST_DIR/" "$SERVER_USER@$SERVER_IP:$DEPLOY_ROOT/$STATIC_DIR/"
|
||||||
echo "✅ dist 目录已上传"
|
echo "✅ dist 目录已上传"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "📋 步骤5: 设置文件权限..."
|
echo "📋 步骤5: 设置文件权限..."
|
||||||
ssh "$SERVER_USER@$SERVER_IP" "
|
ssh "$SERVER_USER@$SERVER_IP" "
|
||||||
set -e
|
set -e
|
||||||
DEPLOY_PATH='$DEPLOY_ROOT/$PROJECT_NAME/$DIST_DIR'
|
STATIC_PATH='$DEPLOY_ROOT/$STATIC_DIR'
|
||||||
chown -R www-data:www-data \"\$DEPLOY_PATH\" 2>/dev/null || true
|
chown -R www-data:www-data \"\$STATIC_PATH\" 2>/dev/null || true
|
||||||
chmod -R 755 \"\$DEPLOY_PATH\"
|
chmod -R 755 \"\$STATIC_PATH\"
|
||||||
echo \"✅ 权限设置完成\"
|
echo \"✅ 权限设置完成\"
|
||||||
"
|
"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "📋 步骤6: 验证部署..."
|
echo "📋 步骤6: 清除 Nginx 缓存..."
|
||||||
if ! ssh "$SERVER_USER@$SERVER_IP" "[ -d '$DEPLOY_ROOT/$PROJECT_NAME/$DIST_DIR' ]"; then
|
ssh "$SERVER_USER@$SERVER_IP" "
|
||||||
|
set -e
|
||||||
|
docker exec $NGINX_CONTAINER nginx -s reload 2>/dev/null || echo \"⚠️ Nginx 重载失败,尝试重启容器\"
|
||||||
|
echo \"✅ Nginx 缓存已清除\"
|
||||||
|
"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "📋 步骤7: 验证部署..."
|
||||||
|
if ! ssh "$SERVER_USER@$SERVER_IP" "[ -d '$DEPLOY_ROOT/$STATIC_DIR' ]"; then
|
||||||
echo "❌ 部署目录不存在"
|
echo "❌ 部署目录不存在"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
FILE_COUNT=$(ssh "$SERVER_USER@$SERVER_IP" "find '$DEPLOY_ROOT/$PROJECT_NAME/$DIST_DIR' -type f | wc -l")
|
FILE_COUNT=$(ssh "$SERVER_USER@$SERVER_IP" "find '$DEPLOY_ROOT/$STATIC_DIR' -type f | wc -l")
|
||||||
echo "✅ 部署完成,共 $FILE_COUNT 个文件"
|
echo "✅ 部署完成,共 $FILE_COUNT 个文件"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "📋 步骤7: 清理旧备份(保留最近3个)..."
|
echo "📋 步骤8: 清理旧备份(保留最近3个)..."
|
||||||
ssh "$SERVER_USER@$SERVER_IP" "
|
ssh "$SERVER_USER@$SERVER_IP" "
|
||||||
set -e
|
set -e
|
||||||
BACKUP_DIR='$DEPLOY_ROOT/$PROJECT_NAME'
|
BACKUP_DIR='$DEPLOY_ROOT'
|
||||||
cd \"\$BACKUP_DIR\"
|
cd \"\$BACKUP_DIR\"
|
||||||
ls -dt ${DIST_DIR}_backup_* 2>/dev/null | tail -n +4 | xargs rm -rf 2>/dev/null || true
|
ls -dt ${STATIC_DIR}_backup_* 2>/dev/null | tail -n +4 | xargs rm -rf 2>/dev/null || true
|
||||||
echo \"✅ 清理完成\"
|
echo \"✅ 清理完成\"
|
||||||
"
|
"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "📋 步骤9: 验证生产环境..."
|
||||||
|
LOGO_FONT=$(curl -s "https://novalon.cn/logo.svg" | grep -o "font-family: [^;]*" | head -1)
|
||||||
|
if echo "$LOGO_FONT" | grep -q "aoyagiReisho"; then
|
||||||
|
echo "✅ 生产环境已更新: $LOGO_FONT"
|
||||||
|
else
|
||||||
|
echo "⚠️ 生产环境可能未更新,请手动验证"
|
||||||
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "🎉 部署成功!"
|
echo "🎉 部署成功!"
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
Reference in New Issue
Block a user