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

3.6 KiB
Raw Blame History

基于角色的系统 - Docker部署指南

项目概述

这是一个基于Django的基于角色的系统使用MySQL数据库和Redis进行WebSocket通信。

Docker部署步骤

前置要求

部署步骤

  1. 配置Docker镜像源(解决网络问题)

    编辑Docker Desktop设置添加国内镜像源

    {
      "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. 准备环境变量

    复制示例环境变量文件并根据需要修改:

    cp .env.example .env
    
  3. 构建镜像

    docker-compose build
    

    如果遇到网络问题,尝试预先拉取基础镜像:

    docker pull python:3.11-slim
    
  4. 启动容器

    docker-compose up -d
    

    如果MySQL端口冲突通常是本地已有MySQL服务修改docker-compose.yml中的端口映射:

    ports:
      - "3307:3306"  # 使用3307替代3306
    
  5. 执行数据库迁移

    docker-compose exec web python manage.py migrate
    
  6. 创建测试用户

    docker-compose exec web python manage.py create_test_users
    

    这将创建以下用户:

    • 4个管理员用户admin1-admin4密码admin123
    • 7个组长用户leader1-leader7密码leader123

    执行后会显示每个用户的Token可用于API认证。

  7. 创建超级用户(可选)

    docker-compose exec web python manage.py createsuperuser
    
  8. 查看日志(如需调试)

    docker-compose logs -f
    

    查看特定服务日志:

    docker-compose logs web  # 查看web应用日志
    docker-compose logs db   # 查看数据库日志
    

访问应用

应用将在以下地址运行:http://localhost:8000

容器管理命令

# 查看容器状态
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

从容器内连接

docker-compose exec db mysql -u root -p rolebasedfilemanagement

数据备份与恢复

备份数据库

docker-compose exec db mysqldump -u root -p rolebasedfilemanagement > backup.sql

恢复数据库

docker-compose exec -T db mysql -u root -p rolebasedfilemanagement < backup.sql

故障排除

依赖问题

如果遇到缺少依赖项的错误,编辑requirements.txt添加缺失的包,然后重新构建:

docker-compose down
docker-compose build
docker-compose up -d

端口冲突

如果遇到端口冲突,修改docker-compose.yml中的端口映射,将冲突的端口修改为未使用的端口。

网络问题

如果无法下载Docker镜像配置国内镜像源或使用VPN解决网络连接问题。

注意事项

  • 在生产环境中,请确保修改默认密码和密钥
  • 生产环境应启用HTTPS
  • 定期备份数据库和媒体文件
  • 对于生产部署建议配置Nginx作为反向代理