feat: 更新部署配置和发布流程
- 修复前端 TypeScript 编译错误 - 更新部署文档(前端本地构建,后端 Git 部署) - 新增服务器端部署脚本 - 优化部署流程 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+24
-24
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
# uniservice-mobile.hnxinyouhe.com 部署脚本
|
||||
# 使用方法: ./deploy-1panel.sh [server]
|
||||
# 使用方法: ./deploy/deploy-1panel.sh [server]
|
||||
|
||||
set -e
|
||||
|
||||
@@ -54,7 +54,7 @@ check_env() {
|
||||
fi
|
||||
|
||||
if [ ! -d "$FRONTEND_BUILD_DIR" ]; then
|
||||
log_error "❌ 前端构建目录不存在: $FRONTEND_BUILD_DIR"
|
||||
log_error "前端构建目录不存在: $FRONTEND_BUILD_DIR"
|
||||
echo ""
|
||||
log_info "请先在本地构建前端:"
|
||||
echo " cd frontend"
|
||||
@@ -64,7 +64,7 @@ check_env() {
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log_info "✓ 环境检查通过"
|
||||
log_info "环境检查通过"
|
||||
}
|
||||
|
||||
# ============================================
|
||||
@@ -74,15 +74,15 @@ verify_frontend() {
|
||||
log_step "验证前端构建..."
|
||||
|
||||
if [ ! -f "$FRONTEND_BUILD_DIR/index.html" ]; then
|
||||
log_error "❌ 前端构建不完整,缺少 index.html"
|
||||
log_error "前端构建不完整,缺少 index.html"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d "$FRONTEND_BUILD_DIR/assets" ]; then
|
||||
log_warn "⚠️ 未找到 assets 目录,可能是构建失败"
|
||||
log_warn "未找到 assets 目录,可能是构建失败"
|
||||
fi
|
||||
|
||||
log_info "✓ 前端构建验证通过"
|
||||
log_info "前端构建验证通过"
|
||||
echo " - index.html: 存在"
|
||||
echo " - 构建时间: $(ls -lt $FRONTEND_BUILD_DIR/index.html | head -1 | awk '{print $6, $7, $8}')"
|
||||
}
|
||||
@@ -102,7 +102,7 @@ deploy_frontend() {
|
||||
${FRONTEND_BUILD_DIR}/ \
|
||||
${DEPLOY_USER}@${SERVER}:${REMOTE_ROOT}/
|
||||
|
||||
log_info "✓ 前端部署完成"
|
||||
log_info "前端部署完成"
|
||||
}
|
||||
|
||||
# ============================================
|
||||
@@ -127,7 +127,7 @@ deploy_backend() {
|
||||
${BACKEND_SOURCE_DIR}/ \
|
||||
${DEPLOY_USER}@${SERVER}:${REMOTE_BACKEND_DIR}/
|
||||
|
||||
log_info "✓ 后端部署完成"
|
||||
log_info "后端代码部署完成"
|
||||
}
|
||||
|
||||
# ============================================
|
||||
@@ -137,33 +137,34 @@ restart_backend() {
|
||||
log_step "重启后端容器..."
|
||||
|
||||
ssh ${DEPLOY_USER}@${SERVER} << 'EOF'
|
||||
echo "正在检查后端目录..."
|
||||
set -e
|
||||
echo "正在检查部署目录..."
|
||||
cd /opt/x-server-mobile
|
||||
|
||||
if [ ! -f "deploy/docker-compose.prod.yml" ]; then
|
||||
echo "❌ docker-compose.prod.yml 不存在"
|
||||
echo " 请先上传部署配置文件"
|
||||
if [ ! -f "docker-compose.prod.yml" ]; then
|
||||
echo "docker-compose.prod.yml 不存在"
|
||||
echo "请先上传部署配置文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "停止旧容器..."
|
||||
docker-compose -f deploy/docker-compose.prod.yml down 2>/dev/null || true
|
||||
docker-compose -f docker-compose.prod.yml down 2>/dev/null || true
|
||||
|
||||
echo "启动新容器..."
|
||||
docker-compose -f deploy/docker-compose.prod.yml up -d
|
||||
docker-compose -f docker-compose.prod.yml up -d
|
||||
|
||||
echo ""
|
||||
echo "容器状态:"
|
||||
docker ps | grep x-server
|
||||
docker ps | grep x-server || echo "未找到运行中的容器"
|
||||
|
||||
echo ""
|
||||
echo "✓ 后端容器重启完成"
|
||||
echo "后端容器重启完成"
|
||||
EOF
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
log_info "✓ 后端容器重启成功"
|
||||
log_info "后端容器重启成功"
|
||||
else
|
||||
log_error "✗ 后端容器重启失败"
|
||||
log_error "后端容器重启失败"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
@@ -175,12 +176,11 @@ show_deployment_info() {
|
||||
echo ""
|
||||
log_step "部署信息"
|
||||
echo ""
|
||||
echo "🌐 访问地址: https://uniservice-mobile.hnxinyouhe.com"
|
||||
echo "访问地址: https://uniservice-mobile.hnxinyouhe.com"
|
||||
echo ""
|
||||
echo "📁 前端目录: ${REMOTE_ROOT}"
|
||||
echo "📁 后端目录: ${REMOTE_BACKEND_DIR}"
|
||||
echo ""
|
||||
echo "📊 后端容器: x-server-backend-prod (端口 8787)"
|
||||
echo "前端目录: ${REMOTE_ROOT}"
|
||||
echo "后端目录: ${REMOTE_BACKEND_DIR}"
|
||||
echo "后端容器: x-server-backend-prod (端口 8787)"
|
||||
echo ""
|
||||
}
|
||||
|
||||
@@ -192,7 +192,7 @@ main() {
|
||||
echo " uniservice-mobile 部署脚本"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "📍 目标服务器: ${SERVER}"
|
||||
echo "目标服务器: ${SERVER}"
|
||||
echo ""
|
||||
|
||||
# 检查环境
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
#!/bin/bash
|
||||
# X-Server Mobile 后端部署脚本(服务器端)
|
||||
# 使用方法: cd /opt/x-server-mobile && ./deploy.sh
|
||||
|
||||
set -e
|
||||
|
||||
# 颜色输出
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m'
|
||||
|
||||
log_info() {
|
||||
echo -e "${GREEN}[INFO]${NC} $1"
|
||||
}
|
||||
|
||||
log_warn() {
|
||||
echo -e "${YELLOW}[WARN]${NC} $1"
|
||||
}
|
||||
|
||||
log_error() {
|
||||
echo -e "${RED}[ERROR]${NC} $1"
|
||||
}
|
||||
|
||||
log_step() {
|
||||
echo -e "${BLUE}==>${NC} $1"
|
||||
}
|
||||
|
||||
# 项目目录
|
||||
PROJECT_DIR="/opt/x-server-mobile"
|
||||
cd "$PROJECT_DIR"
|
||||
|
||||
echo "=========================================="
|
||||
echo " X-Server Mobile 后端部署"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "项目目录: $PROJECT_DIR"
|
||||
echo ""
|
||||
|
||||
# ============================================
|
||||
# 1. 拉取最新代码
|
||||
# ============================================
|
||||
log_step "拉取最新代码..."
|
||||
|
||||
# 获取当前分支名
|
||||
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
||||
|
||||
# 拉取最新代码
|
||||
git fetch origin
|
||||
git reset --hard "origin/${CURRENT_BRANCH}"
|
||||
|
||||
log_info "代码已更新"
|
||||
|
||||
# ============================================
|
||||
# 2. 重启后端容器
|
||||
# ============================================
|
||||
log_step "重启后端容器..."
|
||||
|
||||
if [ ! -f "docker-compose.prod.yml" ]; then
|
||||
log_error "docker-compose.prod.yml 不存在"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 重启容器
|
||||
docker-compose -f docker-compose.prod.yml down 2>/dev/null || true
|
||||
docker-compose -f docker-compose.prod.yml up -d
|
||||
|
||||
log_info "后端容器已重启"
|
||||
|
||||
# ============================================
|
||||
# 3. 显示容器状态
|
||||
# ============================================
|
||||
echo ""
|
||||
log_step "容器状态"
|
||||
echo ""
|
||||
docker ps | grep x-server || log_warn "未找到运行中的容器"
|
||||
echo ""
|
||||
|
||||
# ============================================
|
||||
# 4. 完成
|
||||
# ============================================
|
||||
log_info "后端部署完成!"
|
||||
echo ""
|
||||
echo "访问地址: https://uniservice-mobile.hnxinyouhe.com"
|
||||
echo ""
|
||||
echo "查看后端日志:"
|
||||
echo " docker logs -f x-server-backend-prod"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user