forked from quant-speed-AI/Scoring-System
chore: 优化 Docker 配置,添加生产环境部署脚本和文档
This commit is contained in:
249
DEPLOY.md
Normal file
249
DEPLOY.md
Normal file
@@ -0,0 +1,249 @@
|
||||
# 创赢未来报名评分系统 - 生产环境部署指南
|
||||
|
||||
## 📋 部署前准备
|
||||
|
||||
### 系统要求
|
||||
- **操作系统**: Ubuntu 20.04+ / CentOS 7+ / Debian 10+
|
||||
- **内存**: 至少 2GB RAM
|
||||
- **磁盘**: 至少 20GB 可用空间
|
||||
- **Docker**: 20.10+
|
||||
- **Docker Compose**: 2.0+
|
||||
|
||||
### 安装 Docker
|
||||
```bash
|
||||
# Ubuntu/Debian
|
||||
curl -fsSL https://get.docker.com | sh
|
||||
sudo usermod -aG docker $USER
|
||||
|
||||
# 安装 Docker Compose
|
||||
sudo apt-get install -y docker-compose-plugin
|
||||
# 或
|
||||
pip install docker-compose
|
||||
```
|
||||
|
||||
## 🚀 快速部署
|
||||
|
||||
### 1. 拉取代码
|
||||
```bash
|
||||
git clone https://gitea.tangledup-ai.com/quant-speed-AI/Scoring-System.git
|
||||
cd Scoring-System
|
||||
```
|
||||
|
||||
### 2. 配置环境变量
|
||||
```bash
|
||||
# 复制环境变量模板
|
||||
cp .env.example .env
|
||||
|
||||
# 编辑 .env 文件,填入您的实际配置
|
||||
vim .env
|
||||
```
|
||||
|
||||
**必须配置的项目:**
|
||||
- `SECRET_KEY`: Django 安全密钥(必须修改!)
|
||||
- `DB_PASSWORD`: 数据库密码
|
||||
- `WECHAT_*`: 微信支付相关配置(如需支付功能)
|
||||
- `ALIYUN_*`: 阿里云 OSS 和 AI 服务配置(如需语音转写和 AI 评估)
|
||||
|
||||
### 3. 执行部署脚本
|
||||
```bash
|
||||
# 给脚本添加执行权限
|
||||
chmod +x deploy.sh
|
||||
|
||||
# 执行部署
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
## 🔧 手动部署(高级)
|
||||
|
||||
### 1. 构建镜像
|
||||
```bash
|
||||
docker-compose build --no-cache
|
||||
```
|
||||
|
||||
### 2. 启动服务
|
||||
```bash
|
||||
# 后台启动
|
||||
docker-compose up -d
|
||||
|
||||
# 查看日志
|
||||
docker-compose logs -f
|
||||
|
||||
# 查看特定服务日志
|
||||
docker-compose logs -f backend
|
||||
docker-compose logs -f frontend
|
||||
```
|
||||
|
||||
### 3. 执行数据库迁移
|
||||
```bash
|
||||
docker-compose exec backend python manage.py migrate
|
||||
docker-compose exec backend python manage.py createsuperuser
|
||||
```
|
||||
|
||||
### 4. 收集静态文件
|
||||
```bash
|
||||
docker-compose exec backend python manage.py collectstatic --noinput
|
||||
```
|
||||
|
||||
## 🌐 Nginx 反向代理配置(推荐)
|
||||
|
||||
如果需要使用域名和 HTTPS,在服务器上安装 Nginx:
|
||||
|
||||
```nginx
|
||||
# /etc/nginx/sites-available/scoring-system
|
||||
server {
|
||||
listen 80;
|
||||
server_name your-domain.com;
|
||||
|
||||
location / {
|
||||
proxy_pass http://localhost:80;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
启用配置:
|
||||
```bash
|
||||
sudo ln -s /etc/nginx/sites-available/scoring-system /etc/nginx/sites-enabled/
|
||||
sudo nginx -t
|
||||
sudo systemctl reload nginx
|
||||
```
|
||||
|
||||
## 🔒 HTTPS 配置(Let's Encrypt)
|
||||
|
||||
```bash
|
||||
# 安装 Certbot
|
||||
sudo apt-get install -y certbot python3-certbot-nginx
|
||||
|
||||
# 申请证书
|
||||
sudo certbot --nginx -d your-domain.com
|
||||
|
||||
# 自动续期
|
||||
sudo certbot renew --dry-run
|
||||
```
|
||||
|
||||
## 📊 常用命令
|
||||
|
||||
```bash
|
||||
# 查看运行状态
|
||||
docker-compose ps
|
||||
|
||||
# 停止服务
|
||||
docker-compose down
|
||||
|
||||
# 重启服务
|
||||
docker-compose restart
|
||||
|
||||
# 重启单个服务
|
||||
docker-compose restart backend
|
||||
|
||||
# 进入容器
|
||||
docker-compose exec backend bash
|
||||
docker-compose exec frontend sh
|
||||
|
||||
# 查看容器日志
|
||||
docker-compose logs -f --tail=100 backend
|
||||
|
||||
# 清理未使用的镜像
|
||||
docker image prune -f
|
||||
|
||||
# 更新部署(拉取最新代码并重启)
|
||||
git pull
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
## 🔍 故障排查
|
||||
|
||||
### 问题1: 端口被占用
|
||||
```bash
|
||||
# 检查端口占用
|
||||
sudo netstat -tlnp | grep 8000
|
||||
sudo netstat -tlnp | grep 80
|
||||
|
||||
# 修改 docker-compose.yml 中的端口映射
|
||||
```
|
||||
|
||||
### 问题2: 数据库连接失败
|
||||
```bash
|
||||
# 检查数据库配置
|
||||
docker-compose exec backend python manage.py dbshell
|
||||
|
||||
# 查看后端日志
|
||||
docker-compose logs backend | grep -i error
|
||||
```
|
||||
|
||||
### 问题3: 静态文件无法访问
|
||||
```bash
|
||||
# 重新收集静态文件
|
||||
docker-compose exec backend python manage.py collectstatic --noinput
|
||||
|
||||
# 检查权限
|
||||
ls -la backend/static/
|
||||
ls -la backend/media/
|
||||
```
|
||||
|
||||
### 问题4: 容器无法启动
|
||||
```bash
|
||||
# 查看详细日志
|
||||
docker-compose logs --no-color
|
||||
|
||||
# 检查配置
|
||||
docker-compose config
|
||||
```
|
||||
|
||||
## 💾 数据备份
|
||||
|
||||
### 数据库备份
|
||||
```bash
|
||||
# 进入容器执行备份
|
||||
docker-compose exec backend python manage.py dumpdata > backup_$(date +%Y%m%d).json
|
||||
|
||||
# 或使用 PostgreSQL 直接备份
|
||||
docker exec scoring_system_db pg_dump -U postgres scoring_system > db_backup_$(date +%Y%m%d).sql
|
||||
```
|
||||
|
||||
### 媒体文件备份
|
||||
```bash
|
||||
# 备份上传的文件
|
||||
tar -czvf media_backup_$(date +%Y%m%d).tar.gz backend/media/
|
||||
```
|
||||
|
||||
## 🔄 自动部署(CI/CD)
|
||||
|
||||
使用 Gitea Actions 或 Jenkins 实现自动部署:
|
||||
|
||||
```yaml
|
||||
# .gitea/workflows/deploy.yaml
|
||||
name: Deploy to Production
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Deploy to Server
|
||||
uses: appleboy/ssh-action@master
|
||||
with:
|
||||
host: ${{ secrets.HOST }}
|
||||
username: ${{ secrets.USERNAME }}
|
||||
password: ${{ secrets.PASSWORD }}
|
||||
script: |
|
||||
cd ~/Scoring-System
|
||||
git pull
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
## 📞 技术支持
|
||||
|
||||
- **项目仓库**: https://gitea.tangledup-ai.com/quant-speed-AI/Scoring-System
|
||||
- **问题反馈**: 在仓库提交 Issue
|
||||
|
||||
---
|
||||
|
||||
**部署完成后访问地址:**
|
||||
- 🌐 前端页面: http://your-server-ip/
|
||||
- 🔧 后台管理: http://your-server-ip:8000/admin/
|
||||
- 📚 API 文档: http://your-server-ip:8000/api/docs/
|
||||
Reference in New Issue
Block a user