# 基于角色的系统 - 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作为反向代理