26f0cdd760
🧹 项目结构优化: - 删除重复和过时的文件 - 整理文档到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个微服务模块完整 - 前后端分离架构 - 容器化部署 - 统一配置管理 - 完整的部署和运维体系
7.2 KiB
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. 回滚准备
- ✅ 保留旧版本备份
- ✅ 准备回滚脚本
- ✅ 制定回滚计划
- ✅ 测试回滚流程
联系支持
如遇到部署问题,请:
- 查看部署日志: 详细的错误信息通常在日志中
- 检查服务状态: 使用健康检查接口验证服务状态
- 联系开发团队: 提供完整的错误日志和环境信息
文档版本: v1.0
更新时间: 2025-07-18
维护团队: 情感博物馆开发团队