role_based_system/README.md
2025-04-29 11:42:37 +08:00

168 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 基于角色的系统 - Docker部署指南
## 项目概述
这是一个基于Django的基于角色的系统使用MySQL数据库和Redis进行WebSocket通信。
## Docker部署步骤
### 前置要求
- 安装 [Docker](https://docs.docker.com/get-docker/)
- 安装 [Docker Compose](https://docs.docker.com/compose/install/)
### 部署步骤
1. **配置Docker镜像源**(解决网络问题)
编辑Docker Desktop设置添加国内镜像源
```json
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com",
"https://reg-mirror.qiniu.com"
]
}
```
应用设置并重启Docker Desktop。
2. **准备环境变量**
复制示例环境变量文件并根据需要修改:
```bash
cp .env.example .env
```
3. **构建镜像**
```bash
docker-compose build
```
如果遇到网络问题,尝试预先拉取基础镜像:
```bash
docker pull python:3.11-slim
```
4. **启动容器**
```bash
docker-compose up -d
```
如果MySQL端口冲突通常是本地已有MySQL服务修改`docker-compose.yml`中的端口映射:
```yaml
ports:
- "3307:3306" # 使用3307替代3306
```
5. **执行数据库迁移**
```bash
docker-compose exec web python manage.py migrate
```
6. **创建测试用户**
```bash
docker-compose exec web python manage.py create_test_users
```
这将创建以下用户:
- 4个管理员用户admin1-admin4密码admin123
- 7个组长用户leader1-leader7密码leader123
执行后会显示每个用户的Token可用于API认证。
7. **创建超级用户(可选)**
```bash
docker-compose exec web python manage.py createsuperuser
```
8. **查看日志(如需调试)**
```bash
docker-compose logs -f
```
查看特定服务日志:
```bash
docker-compose logs web # 查看web应用日志
docker-compose logs db # 查看数据库日志
```
### 访问应用
应用将在以下地址运行:`http://localhost:8000`
### 容器管理命令
```bash
# 查看容器状态
docker-compose ps
# 停止服务
docker-compose down
# 重新启动服务
docker-compose up -d
# 重建镜像并启动
docker-compose up -d --build
# 完全重置(包括数据卷)
docker-compose down -v
```
## 数据库访问
### 本地访问MySQL
- 主机: localhost
- 端口: 3307如果修改了端口映射
- 用户名: root
- 密码: Ooin2025!
- 数据库名: rolebasedfilemanagement
### 从容器内连接
```bash
docker-compose exec db mysql -u root -p rolebasedfilemanagement
```
## 数据备份与恢复
### 备份数据库
```bash
docker-compose exec db mysqldump -u root -p rolebasedfilemanagement > backup.sql
```
### 恢复数据库
```bash
docker-compose exec -T db mysql -u root -p rolebasedfilemanagement < backup.sql
```
## 故障排除
### 依赖问题
如果遇到缺少依赖项的错误,编辑`requirements.txt`添加缺失的包,然后重新构建:
```bash
docker-compose down
docker-compose build
docker-compose up -d
```
### 端口冲突
如果遇到端口冲突,修改`docker-compose.yml`中的端口映射,将冲突的端口修改为未使用的端口。
### 网络问题
如果无法下载Docker镜像配置国内镜像源或使用VPN解决网络连接问题。
## 注意事项
- 在生产环境中,请确保修改默认密码和密钥
- 生产环境应启用HTTPS
- 定期备份数据库和媒体文件
- 对于生产部署建议配置Nginx作为反向代理