bug修复
This commit is contained in:
@@ -0,0 +1,275 @@
|
||||
# 一键部署脚本使用说明
|
||||
|
||||
## 📋 概述
|
||||
|
||||
`deploy-all.sh` 是一个一键式部署脚本,可以同时部署后端和前端服务到远程服务器 `101.200.208.45`。
|
||||
|
||||
该脚本会自动执行以下操作:
|
||||
1. 编译后端项目
|
||||
2. 上传后端 JAR 包到服务器
|
||||
3. 启动后端服务
|
||||
4. 构建前端项目
|
||||
5. 上传前端文件到服务器
|
||||
6. 验证部署结果
|
||||
|
||||
## 🚀 快速开始
|
||||
|
||||
### 基本用法
|
||||
|
||||
```bash
|
||||
# 部署所有服务(后端 + 前端)
|
||||
bash deploy-all.sh
|
||||
|
||||
# 或指定部署类型
|
||||
bash deploy-all.sh all # 部署所有服务
|
||||
bash deploy-all.sh backend # 仅部署后端
|
||||
bash deploy-all.sh frontend # 仅部署前端
|
||||
```
|
||||
|
||||
### 完整部署流程
|
||||
|
||||
```bash
|
||||
# 1. 进入项目根目录
|
||||
cd /path/to/EmotionMuseum
|
||||
|
||||
# 2. 执行一键部署
|
||||
bash deploy-all.sh
|
||||
|
||||
# 3. 等待部署完成(通常需要 2-5 分钟)
|
||||
|
||||
# 4. 访问应用
|
||||
# 前端: http://101.200.208.45/emotion-museum/
|
||||
# 后端: http://101.200.208.45:19089/api
|
||||
```
|
||||
|
||||
## 📝 部署选项
|
||||
|
||||
### 部署所有服务
|
||||
```bash
|
||||
bash deploy-all.sh all
|
||||
# 或
|
||||
bash deploy-all.sh
|
||||
```
|
||||
同时部署后端和前端,推荐用于完整的应用更新。
|
||||
|
||||
### 仅部署后端
|
||||
```bash
|
||||
bash deploy-all.sh backend
|
||||
```
|
||||
仅更新后端服务,适用于后端代码更新。
|
||||
|
||||
### 仅部署前端
|
||||
```bash
|
||||
bash deploy-all.sh frontend
|
||||
```
|
||||
仅更新前端应用,适用于前端代码更新。
|
||||
|
||||
## 📊 部署流程详解
|
||||
|
||||
### 后端部署流程
|
||||
1. 检查 `backend-single/deploy.sh` 是否存在
|
||||
2. 执行后端部署脚本
|
||||
- 清理旧的构建文件
|
||||
- 编译项目 (`mvn clean package`)
|
||||
- 上传 JAR 包到服务器
|
||||
- 启动后端服务
|
||||
- 验证服务是否正常运行
|
||||
|
||||
### 前端部署流程
|
||||
1. 检查 `web/deploy.sh` 是否存在
|
||||
2. 执行前端部署脚本
|
||||
- 检查 `dist` 目录是否存在
|
||||
- 上传 `index.html` 到服务器
|
||||
- 上传 `assets` 目录到服务器
|
||||
- 验证文件是否上传成功
|
||||
|
||||
## ✅ 验证部署
|
||||
|
||||
### 部署完成后的验证
|
||||
|
||||
```bash
|
||||
# 1. 检查后端服务是否运行
|
||||
curl http://101.200.208.45:19089/api/health
|
||||
|
||||
# 2. 检查前端是否可访问
|
||||
curl http://101.200.208.45/emotion-museum/
|
||||
|
||||
# 3. 在浏览器中访问
|
||||
# 前端: http://101.200.208.45/emotion-museum/
|
||||
# 登录页面应该正常显示
|
||||
```
|
||||
|
||||
### 查看服务日志
|
||||
|
||||
```bash
|
||||
# SSH 连接到服务器
|
||||
ssh root@101.200.208.45
|
||||
|
||||
# 查看后端日志
|
||||
tail -f /data/logs/emotion-museum/emotion-single.log
|
||||
|
||||
# 查看前端文件是否存在
|
||||
ls -lh /data/www/emotion-museum/
|
||||
```
|
||||
|
||||
## 🔧 故障排查
|
||||
|
||||
### 后端部署失败
|
||||
|
||||
**问题**: 后端部署失败,显示 "JAR 文件不存在"
|
||||
|
||||
**解决方案**:
|
||||
```bash
|
||||
# 1. 检查是否安装了 Maven
|
||||
mvn -v
|
||||
|
||||
# 2. 手动编译项目
|
||||
cd backend-single
|
||||
mvn clean package -DskipTests
|
||||
|
||||
# 3. 检查 JAR 文件是否生成
|
||||
ls -lh target/backend-single-1.0.0.jar
|
||||
|
||||
# 4. 重新执行部署
|
||||
bash deploy-all.sh backend
|
||||
```
|
||||
|
||||
**问题**: SSH 连接失败
|
||||
|
||||
**解决方案**:
|
||||
```bash
|
||||
# 1. 检查 SSH 密钥是否配置
|
||||
ssh-keygen -t rsa -b 4096
|
||||
|
||||
# 2. 复制公钥到服务器
|
||||
ssh-copy-id -i ~/.ssh/id_rsa.pub root@101.200.208.45
|
||||
|
||||
# 3. 测试 SSH 连接
|
||||
ssh root@101.200.208.45 "echo 'SSH 连接成功'"
|
||||
```
|
||||
|
||||
### 前端部署失败
|
||||
|
||||
**问题**: 前端部署失败,显示 "dist 目录不存在"
|
||||
|
||||
**解决方案**:
|
||||
```bash
|
||||
# 1. 进入前端目录
|
||||
cd web
|
||||
|
||||
# 2. 安装依赖
|
||||
npm install
|
||||
|
||||
# 3. 构建项目
|
||||
npm run build
|
||||
|
||||
# 4. 检查 dist 目录
|
||||
ls -lh dist/
|
||||
|
||||
# 5. 重新执行部署
|
||||
bash deploy-all.sh frontend
|
||||
```
|
||||
|
||||
**问题**: 前端访问 404
|
||||
|
||||
**解决方案**:
|
||||
```bash
|
||||
# 1. 检查 Nginx 配置
|
||||
ssh root@101.200.208.45 "nginx -t"
|
||||
|
||||
# 2. 重新加载 Nginx
|
||||
ssh root@101.200.208.45 "nginx -s reload"
|
||||
|
||||
# 3. 检查前端文件是否存在
|
||||
ssh root@101.200.208.45 "ls -lh /data/www/emotion-museum/"
|
||||
```
|
||||
|
||||
## 📊 部署日志
|
||||
|
||||
部署过程中会输出详细的日志信息:
|
||||
|
||||
```
|
||||
[INFO] 情绪博物馆 - 一键式部署
|
||||
[INFO] 部署类型: all
|
||||
[INFO] 部署时间: 2025-10-26 21:30:00
|
||||
|
||||
╔════════════════════════════════════════════════════════════════╗
|
||||
║ 开始部署后端服务
|
||||
╚════════════════════════════════════════════════════════════════╝
|
||||
|
||||
[INFO] 执行后端部署脚本...
|
||||
[INFO] ✅ 后端部署成功
|
||||
|
||||
╔════════════════════════════════════════════════════════════════╗
|
||||
║ 开始部署前端应用
|
||||
╚════════════════════════════════════════════════════════════════╝
|
||||
|
||||
[INFO] 执行前端部署脚本...
|
||||
[INFO] ✅ 前端部署成功
|
||||
|
||||
╔════════════════════════════════════════════════════════════════╗
|
||||
║ 部署完成总结
|
||||
╚════════════════════════════════════════════════════════════════╝
|
||||
|
||||
[INFO] ✅ 后端部署: 成功
|
||||
[INFO] ✅ 前端部署: 成功
|
||||
[INFO] 部署耗时: 180秒
|
||||
|
||||
╔════════════════════════════════════════════════════════════════╗
|
||||
║ 部署成功!
|
||||
╚════════════════════════════════════════════════════════════════╝
|
||||
|
||||
[INFO] 📱 前端访问地址: http://101.200.208.45/emotion-museum/
|
||||
[INFO] 🔌 后端API地址: http://101.200.208.45:19089/api
|
||||
[INFO] 📊 WebSocket地址: ws://101.200.208.45:19089/ws
|
||||
```
|
||||
|
||||
## 🔄 常见场景
|
||||
|
||||
### 场景 1: 仅更新后端代码
|
||||
|
||||
```bash
|
||||
# 1. 修改后端代码
|
||||
# 2. 执行部署
|
||||
bash deploy-all.sh backend
|
||||
|
||||
# 3. 验证
|
||||
curl http://101.200.208.45:19089/api/health
|
||||
```
|
||||
|
||||
### 场景 2: 仅更新前端代码
|
||||
|
||||
```bash
|
||||
# 1. 修改前端代码
|
||||
# 2. 执行部署
|
||||
bash deploy-all.sh frontend
|
||||
|
||||
# 3. 在浏览器中刷新页面
|
||||
# http://101.200.208.45/emotion-museum/
|
||||
```
|
||||
|
||||
### 场景 3: 同时更新前后端
|
||||
|
||||
```bash
|
||||
# 1. 修改前后端代码
|
||||
# 2. 执行部署
|
||||
bash deploy-all.sh all
|
||||
|
||||
# 3. 等待部署完成
|
||||
# 4. 验证应用
|
||||
```
|
||||
|
||||
## 📞 支持
|
||||
|
||||
如有问题,请参考以下文件:
|
||||
- `backend-single/部署说明.md` - 后端部署详情
|
||||
- `web/部署说明.md` - 前端部署详情
|
||||
- `backend-single/deploy.sh` - 后端部署脚本
|
||||
- `web/deploy.sh` - 前端部署脚本
|
||||
|
||||
---
|
||||
|
||||
**最后更新**: 2025-10-26
|
||||
**版本**: 1.0
|
||||
**状态**: ✅ 已完成
|
||||
|
||||
Reference in New Issue
Block a user