Files
happy-life-star/docs/deployment/部署脚本使用说明.md
T
peanut 26f0cdd760 feat: 完成项目整理优化和生产环境配置
🧹 项目结构优化:
- 删除重复和过时的文件
- 整理文档到docs目录结构
- 优化配置文件到configs目录
- 创建清晰的PROJECT_STRUCTURE.md

🔧 中间件配置:
- 重启MySQL/Redis/Nacos中间件
- 使用现有数据目录,确保数据完整性
- 统一密码配置: MySQL(EmotionMuseum2025*#), Nacos(Peanut2817*#)

🌐 Nginx配置:
- 配置前端路径: /emotion-museum
- 配置API代理: /api/ -> 19000
- 配置WebSocket代理: /ws/ -> 19007
- 添加健康检查端点: /health

📋 部署脚本优化:
- restart-middleware.sh - 中间件重启脚本
- setup-nginx.sh - Nginx配置脚本
- cleanup-project.sh - 项目清理脚本
- one-click-deploy.sh - 一键部署脚本

📖 文档完善:
- DEPLOYMENT_FINAL.md - 最终部署指南
- PROJECT_STRUCTURE.md - 项目结构说明
- 完整的运维和故障排查指南

 生产环境就绪:
- 中间件: MySQL/Redis/Nacos 运行正常
- Nginx: 反向代理配置完成
- 访问地址: http://47.111.10.27/emotion-museum
- 健康检查: http://47.111.10.27/health

🎯 项目现状:
- 10个微服务模块完整
- 前后端分离架构
- 容器化部署
- 统一配置管理
- 完整的部署和运维体系
2025-07-21 13:55:36 +08:00

7.2 KiB

情感博物馆部署脚本使用说明

概述

本项目提供了完整的自动化部署脚本,支持本地部署和Jenkins CI/CD部署。所有脚本都经过优化,支持错误处理、详细日志输出和部署状态报告。

脚本列表

后端微服务部署脚本

1. 全量部署脚本

  • 路径: backend/deploy-all.sh
  • 功能: 一键部署所有后端微服务
  • 特性:
    • 单个服务失败不影响其他服务
    • 详细的部署报告和错误日志
    • 支持Jenkins环境变量
    • 容器化部署

2. 单服务部署脚本

每个微服务都有独立的部署脚本:

  • backend/emotion-gateway/deploy.sh - API网关服务
  • backend/emotion-user/deploy.sh - 用户管理服务
  • backend/emotion-ai/deploy.sh - AI聊天服务
  • backend/emotion-record/deploy.sh - 记录管理服务
  • backend/emotion-growth/deploy.sh - 成长跟踪服务
  • backend/emotion-websocket/deploy.sh - WebSocket服务
  • backend/emotion-auth/deploy.sh - 认证服务

前端应用部署脚本

3. 前端部署脚本

  • 路径: web-flowith/deploy.sh
  • 功能: 构建并部署Vue前端应用
  • 特性:
    • 自动构建和优化
    • 备份旧版本
    • Nginx配置
    • 健康检查

使用方法

本地部署

部署所有后端服务

cd backend
./deploy-all.sh

部署单个后端服务

cd backend/emotion-gateway
./deploy.sh

部署前端应用

cd web-flowith
./deploy.sh

Jenkins部署

环境变量配置

在Jenkins中设置以下环境变量:

# 必需变量
DEPLOY_HOST=root@47.111.10.27
DEPLOY_ENV=test
PROJECT_NAME=emotion-museum

# 可选变量(使用默认值)
REMOTE_BUILD_DIR=/data/builds
REMOTE_DOCKER_DIR=/data/docker
REMOTE_WEB_DIR=/data/www/emotion-museum

Pipeline脚本示例

pipeline {
    agent any
    
    environment {
        DEPLOY_HOST = 'root@47.111.10.27'
        DEPLOY_ENV = 'test'
    }
    
    stages {
        stage('Deploy Backend') {
            steps {
                dir('backend') {
                    sh './deploy-all.sh'
                }
            }
        }
        
        stage('Deploy Frontend') {
            steps {
                dir('web-flowith') {
                    sh './deploy.sh'
                }
            }
        }
    }
}

部署配置

服务端口分配

  • API网关: 19000
  • 用户服务: 19001
  • AI服务: 19002
  • 记录服务: 19003
  • 成长服务: 19004
  • WebSocket服务: 19007
  • 认证服务: 19008

远程服务器目录结构

/data/
├── builds/                 # JAR包存储目录
│   ├── emotion-gateway-1.0.0.jar
│   ├── emotion-user-1.0.0.jar
│   └── ...
├── docker/                 # Docker配置目录
│   ├── Dockerfile.emotion-gateway
│   ├── Dockerfile.emotion-user
│   └── ...
├── www/emotion-museum/     # 前端文件目录
│   ├── web-flowith/        # 前端应用
│   └── backup/             # 前端备份
└── logs/                   # 日志目录
    ├── emotion-museum/     # 应用日志
    └── nginx/              # Nginx日志

部署报告示例

后端服务部署报告

========================================
           部署完成报告
========================================
项目名称: emotion-museum
部署环境: test
目标服务器: root@47.111.10.27
部署时间: 2025-07-18 14:30:25
总耗时: 180s
Jenkins构建: #42
========================================

📊 部署统计:
  总服务数: 7
  成功部署: 6
  失败部署: 1
  成功率: 85%

📋 服务部署详情:
服务名称              状态       耗时       备注
----------------------------------------
emotion-gateway      ✅ 成功    25s       http://47.111.10.27:19000
emotion-user         ✅ 成功    30s       http://47.111.10.27:19001
emotion-ai           ✅ 成功    35s       http://47.111.10.27:19002
emotion-record       ✅ 成功    28s       http://47.111.10.27:19003
emotion-growth       ✅ 成功    32s       http://47.111.10.27:19004
emotion-websocket    ✅ 成功    20s       http://47.111.10.27:19007
emotion-auth         ❌ 失败    10s       查看错误日志

🐳 当前容器运行状态:
----------------------------------------
NAMES               STATUS              PORTS
emotion-gateway     Up 2 minutes        0.0.0.0:19000->19000/tcp
emotion-user        Up 2 minutes        0.0.0.0:19001->19001/tcp
emotion-ai          Up 1 minute         0.0.0.0:19002->19002/tcp
...

前端部署报告

========================================
         前端部署完成报告
========================================
项目名称: emotion-museum-frontend
目标服务器: root@47.111.10.27
部署路径: /data/www/emotion-museum/web-flowith
部署时间: 2025-07-18 14:35:10
总耗时: 45s
========================================

🌐 访问地址:
  前端页面: http://47.111.10.27/emotion-museum/
  API接口: http://47.111.10.27/api/

📁 远程文件信息:
部署目录大小: 2.3M
主要文件:
-rw-r--r-- 1 www-data www-data  1.2K index.html
drwxr-xr-x 2 www-data www-data  4.0K assets/
drwxr-xr-x 2 www-data www-data  4.0K images/

故障排查

常见问题及解决方案

1. SSH连接失败

# 检查SSH密钥
ssh -T root@47.111.10.27

# 检查网络连通性
ping 47.111.10.27

2. 服务构建失败

# 检查Java版本
java -version

# 检查Maven配置
mvn -version

# 清理并重新构建
mvn clean compile

3. 容器启动失败

# 查看容器日志
docker logs <container_name>

# 检查端口占用
netstat -tlnp | grep <port>

# 检查Docker网络
docker network ls

4. 前端构建失败

# 检查Node.js版本
node --version

# 清理依赖重新安装
rm -rf node_modules package-lock.json
npm install

日志查看

部署日志

  • Jenkins构建日志中包含完整的部署过程
  • 每个步骤都有详细的时间戳和状态信息

应用日志

# 查看容器日志
docker logs -f <service_name>

# 查看应用日志文件
tail -f /data/logs/emotion-museum/<service_name>.log

# 查看Nginx日志
tail -f /data/logs/nginx/emotion-museum-access.log

最佳实践

1. 部署前检查

  • 确认代码已提交到正确分支
  • 检查远程服务器资源使用情况
  • 备份重要数据
  • 通知相关人员部署计划

2. 部署过程监控

  • 实时查看部署日志
  • 监控服务器资源使用
  • 检查服务健康状态
  • 验证功能正常性

3. 部署后验证

  • 访问前端页面确认正常
  • 测试API接口功能
  • 检查日志无异常
  • 监控服务性能指标

4. 回滚准备

  • 保留旧版本备份
  • 准备回滚脚本
  • 制定回滚计划
  • 测试回滚流程

联系支持

如遇到部署问题,请:

  1. 查看部署日志: 详细的错误信息通常在日志中
  2. 检查服务状态: 使用健康检查接口验证服务状态
  3. 联系开发团队: 提供完整的错误日志和环境信息

文档版本: v1.0
更新时间: 2025-07-18
维护团队: 情感博物馆开发团队