Files
happy-life-star/CUSTOM_DEPLOYMENT.md
T

8.4 KiB
Raw Blame History

情绪博物馆自定义目录部署指南

📋 部署架构

根据您的要求,本部署方案采用以下目录结构:

/data/
├── www/emotion-museum/          # 前端静态文件目录
│   ├── index.html
│   ├── assets/
│   └── ...
├── builds/                      # 后端JAR文件目录
│   ├── emotion-gateway.jar
│   ├── emotion-ai.jar
│   └── emotion-user.jar
└── logs/emotion-museum/         # 日志目录
    ├── nginx/
    ├── gateway/
    ├── ai/
    ├── user/
    ├── mysql/
    ├── redis/
    └── nacos/

🏗️ 服务架构

┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│   用户访问   │───▶│    Nginx    │───▶│  静态文件    │
└─────────────┘    │   (80/443)  │    │ /data/www/  │
                   └─────────────┘    └─────────────┘
                          │
                          ▼
                   ┌─────────────┐    ┌─────────────┐
                   │  API代理     │───▶│  Gateway    │
                   │   /api/*    │    │   (9000)    │
                   └─────────────┘    └─────────────┘
                          │
                          ▼
                   ┌─────────────┐    ┌─────────────┐
                   │  微服务集群  │    │  JAR文件     │
                   │ AI/User/... │    │ /data/builds│
                   └─────────────┘    └─────────────┘

🚀 快速部署

1. 准备环境

# 确保Docker和Docker Compose已安装
docker --version
docker-compose --version

# 创建必要目录
sudo mkdir -p /data/www/emotion-museum
sudo mkdir -p /data/builds
sudo mkdir -p /data/logs/emotion-museum

2. 配置环境变量

# 编辑环境变量文件
vim .env

配置说明

# Coze API配置(已配置为与开发环境一致)
COZE_API_TOKEN=pat_GCR4qKzqpf90wMCvKsldMrB18KG3QsLDci65bZthssKsbLxu8X70BKYumleDcabO

# 数据库密码(可根据需要修改)
MYSQL_ROOT_PASSWORD=123456
MYSQL_PASSWORD=emotion123

3. 一键部署

# 给脚本执行权限
chmod +x deploy-custom.sh

# 执行自定义部署
./deploy-custom.sh

📁 文件说明

新增配置文件

  1. docker-compose.custom.yml - 自定义Docker配置

    • 前端文件直接从宿主机目录提供
    • 后端JAR文件挂载到容器
    • 日志统一保存到指定目录
  2. deploy-custom.sh - 自定义部署脚本

    • 自动检查和构建前后端
    • 部署文件到指定目录
    • 启动Docker服务
  3. manage-custom.sh - 自定义管理脚本

    • 服务管理和监控
    • 日志查看和健康检查
    • 数据备份和恢复

修改的配置文件

  1. deploy/nginx/conf.d/emotion-museum.conf - Nginx配置

    • 前端文件直接从 /data/www/emotion-museum 提供
    • API请求代理到Docker容器内的服务
    • 日志保存到 /data/logs/emotion-museum/nginx/
  2. deploy/nginx/nginx.conf - Nginx主配置

    • 更新上游服务器定义
    • 支持容器间通信

🔧 端口配置

服务 容器端口 宿主机端口 说明
Nginx 80/443 80/443 Web访问
Gateway 9000 9000 API网关
AI Service 9002 9002 AI服务
User Service 9001 9001 用户服务
MySQL 3306 3306 数据库
Redis 6379 6379 缓存
Nacos 8848 8848 注册中心

🛠️ 管理命令

服务管理

# 启动所有服务
./manage-custom.sh start

# 停止所有服务
./manage-custom.sh stop

# 重启所有服务
./manage-custom.sh restart

# 重启指定服务
./manage-custom.sh restart emotion-ai

# 查看服务状态
./manage-custom.sh status

日志管理

# 查看所有日志
./manage-custom.sh logs

# 跟踪日志输出
./manage-custom.sh logs -f

# 查看指定服务日志
./manage-custom.sh logs -s nginx
./manage-custom.sh logs -s emotion-gateway

健康检查

# 执行健康检查
./manage-custom.sh health

# 实时监控
./manage-custom.sh monitor

数据管理

# 备份数据
./manage-custom.sh backup

# 更新服务
./manage-custom.sh update

# 清理资源
./manage-custom.sh clean

📊 目录详情

前端目录 /data/www/emotion-museum/

/data/www/emotion-museum/
├── index.html              # 主页面
├── assets/                 # 静态资源
│   ├── css/               # 样式文件
│   ├── js/                # JavaScript文件
│   └── images/            # 图片文件
└── favicon.ico            # 网站图标

后端目录 /data/builds/

/data/builds/
├── emotion-gateway.jar     # 网关服务JAR
├── emotion-ai.jar         # AI服务JAR
└── emotion-user.jar       # 用户服务JAR

日志目录 /data/logs/emotion-museum/

/data/logs/emotion-museum/
├── nginx/                 # Nginx日志
│   ├── access.log
│   └── error.log
├── gateway/               # 网关服务日志
├── ai/                    # AI服务日志
├── user/                  # 用户服务日志
├── mysql/                 # MySQL日志
├── redis/                 # Redis日志
└── nacos/                 # Nacos日志

🔄 更新流程

更新前端

# 1. 重新构建前端
cd web
npm run build

# 2. 部署到目标目录
sudo rm -rf /data/www/emotion-museum/*
sudo cp -r dist/* /data/www/emotion-museum/
sudo chown -R www-data:www-data /data/www/emotion-museum

# 3. 重启Nginx(可选)
./manage-custom.sh restart nginx

更新后端

# 1. 重新构建后端
cd backend
mvn clean package -DskipTests

# 2. 部署JAR文件
sudo cp emotion-gateway/target/emotion-gateway-1.0.0.jar /data/builds/emotion-gateway.jar
sudo cp emotion-ai/target/emotion-ai-1.0.0.jar /data/builds/emotion-ai.jar
sudo cp emotion-user/target/emotion-user-1.0.0.jar /data/builds/emotion-user.jar

# 3. 重启相关服务
./manage-custom.sh restart emotion-gateway
./manage-custom.sh restart emotion-ai
./manage-custom.sh restart emotion-user

一键更新

# 自动构建和部署
./manage-custom.sh update

🚨 故障排除

常见问题

1. 前端访问404

# 检查前端文件是否存在
ls -la /data/www/emotion-museum/

# 检查Nginx配置
./manage-custom.sh logs -s nginx

# 检查文件权限
sudo chown -R www-data:www-data /data/www/emotion-museum

2. API调用失败

# 检查网关服务状态
./manage-custom.sh logs -s emotion-gateway

# 检查服务健康状态
curl http://localhost:9000/actuator/health

3. 服务启动失败

# 检查JAR文件是否存在
ls -la /data/builds/

# 检查服务日志
./manage-custom.sh logs -s emotion-ai

# 检查容器状态
docker-compose -f docker-compose.custom.yml ps

4. 日志文件过大

# 清理日志文件
sudo find /data/logs/emotion-museum -name "*.log" -size +100M -delete

# 设置日志轮转
sudo logrotate -f /etc/logrotate.conf

📞 技术支持

快速诊断

# 执行健康检查
./manage-custom.sh health

# 查看服务状态
./manage-custom.sh status

# 查看实时监控
./manage-custom.sh monitor

获取帮助

# 查看管理命令帮助
./manage-custom.sh --help

# 查看部署脚本帮助
./deploy-custom.sh --help

部署检查清单

  • 目录创建: /data/www/emotion-museum, /data/builds, /data/logs/emotion-museum
  • 环境配置: COZE_API_TOKEN 已配置为与开发环境一致
  • 前端部署: 静态文件已复制到 /data/www/emotion-museum/
  • 后端部署: JAR文件已复制到 /data/builds/
  • 服务启动: 所有Docker容器正常运行
  • 访问测试: 前端页面和API接口正常访问
  • 日志检查: 日志文件正常生成到 /data/logs/emotion-museum/

🎉 恭喜!您的情绪博物馆项目已成功部署到自定义目录结构!