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个微服务模块完整 - 前后端分离架构 - 容器化部署 - 统一配置管理 - 完整的部署和运维体系
This commit is contained in:
@@ -0,0 +1,308 @@
|
||||
# 情感博物馆部署脚本使用说明
|
||||
|
||||
## 概述
|
||||
|
||||
本项目提供了完整的自动化部署脚本,支持本地部署和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配置
|
||||
- ✅ 健康检查
|
||||
|
||||
## 使用方法
|
||||
|
||||
### 本地部署
|
||||
|
||||
#### 部署所有后端服务
|
||||
```bash
|
||||
cd backend
|
||||
./deploy-all.sh
|
||||
```
|
||||
|
||||
#### 部署单个后端服务
|
||||
```bash
|
||||
cd backend/emotion-gateway
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
#### 部署前端应用
|
||||
```bash
|
||||
cd web-flowith
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
### Jenkins部署
|
||||
|
||||
#### 环境变量配置
|
||||
在Jenkins中设置以下环境变量:
|
||||
|
||||
```bash
|
||||
# 必需变量
|
||||
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脚本示例
|
||||
```groovy
|
||||
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连接失败
|
||||
```bash
|
||||
# 检查SSH密钥
|
||||
ssh -T root@47.111.10.27
|
||||
|
||||
# 检查网络连通性
|
||||
ping 47.111.10.27
|
||||
```
|
||||
|
||||
#### 2. 服务构建失败
|
||||
```bash
|
||||
# 检查Java版本
|
||||
java -version
|
||||
|
||||
# 检查Maven配置
|
||||
mvn -version
|
||||
|
||||
# 清理并重新构建
|
||||
mvn clean compile
|
||||
```
|
||||
|
||||
#### 3. 容器启动失败
|
||||
```bash
|
||||
# 查看容器日志
|
||||
docker logs <container_name>
|
||||
|
||||
# 检查端口占用
|
||||
netstat -tlnp | grep <port>
|
||||
|
||||
# 检查Docker网络
|
||||
docker network ls
|
||||
```
|
||||
|
||||
#### 4. 前端构建失败
|
||||
```bash
|
||||
# 检查Node.js版本
|
||||
node --version
|
||||
|
||||
# 清理依赖重新安装
|
||||
rm -rf node_modules package-lock.json
|
||||
npm install
|
||||
```
|
||||
|
||||
### 日志查看
|
||||
|
||||
#### 部署日志
|
||||
- Jenkins构建日志中包含完整的部署过程
|
||||
- 每个步骤都有详细的时间戳和状态信息
|
||||
|
||||
#### 应用日志
|
||||
```bash
|
||||
# 查看容器日志
|
||||
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
|
||||
**维护团队**: 情感博物馆开发团队
|
||||
Reference in New Issue
Block a user