diff --git a/.env b/.env new file mode 100644 index 00000000..fdc373ad --- /dev/null +++ b/.env @@ -0,0 +1,15 @@ +# 数据库配置 +DATABASE_NAME=rolebasedfilemanagement +DATABASE_USER=root +DATABASE_PASSWORD=Ooin2025! +DATABASE_HOST=db +DATABASE_PORT=3306 + +# Redis配置 +REDIS_HOST=redis +REDIS_PORT=6379 + +# Django设置 +DEBUG=False +SECRET_KEY=django-insecure-5f*=0_2did)e(()n58=e#vd5gaf&y$thgt(h6&=p+wm1*r6mb= +ALLOWED_HOSTS=localhost,127.0.0.1,* \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index b10a7324..ea38c018 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,6 +8,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ default-libmysqlclient-dev \ build-essential \ gcc \ + pkg-config \ + python3-dev \ + default-mysql-client \ && rm -rf /var/lib/apt/lists/* # 复制依赖文件并安装 diff --git a/docker-compose.yml b/docker-compose.yml index ea495cc6..4bbc8b19 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -30,7 +30,7 @@ services: - MYSQL_DATABASE=rolebasedfilemanagement - MYSQL_ROOT_PASSWORD=Ooin2025! ports: - - "3306:3306" + - "3307:3306" command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci redis: diff --git a/requirements.txt b/requirements.txt index 2e65c210..b7d0a1d4 100644 Binary files a/requirements.txt and b/requirements.txt differ diff --git a/role_based_system/settings.py b/role_based_system/settings.py index f18d1ee2..ad0a5022 100644 --- a/role_based_system/settings.py +++ b/role_based_system/settings.py @@ -12,17 +12,14 @@ https://docs.djangoproject.com/en/5.1/ref/settings/ import os from pathlib import Path +from dotenv import load_dotenv + +# 加载.env文件中的环境变量 +load_dotenv() # API 配置 API_BASE_URL = 'http://81.69.223.133:48329' -DEPARTMENT_GROUPS = { - "技术部": ["开发组", "测试组", "运维组"], - "产品部": ["产品组", "设计组"], - "市场部": ["销售组", "推广组"], - "行政部": ["人事组", "财务组"] -} - # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent @@ -105,11 +102,11 @@ WSGI_APPLICATION = 'role_based_system.wsgi.application' DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', - 'NAME': 'rolebasedfilemanagement', - 'USER': 'root', - 'PASSWORD': 'Ooin2025!', - 'HOST': 'localhost', - 'PORT': '3306', + 'NAME': os.environ.get('DATABASE_NAME', 'rolebasedfilemanagement'), + 'USER': os.environ.get('DATABASE_USER', 'root'), + 'PASSWORD': os.environ.get('DATABASE_PASSWORD', 'Ooin2025!'), + 'HOST': os.environ.get('DATABASE_HOST', 'localhost'), + 'PORT': os.environ.get('DATABASE_PORT', '3306'), 'OPTIONS': { 'charset': 'utf8mb4', # 使用 utf8mb4 字符集 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'; SET innodb_strict_mode=1; SET NAMES utf8mb4;", @@ -174,7 +171,7 @@ CHANNEL_LAYERS = { "default": { "BACKEND": "channels_redis.core.RedisChannelLayer", "CONFIG": { - "hosts": [("127.0.0.1", 6379)], + "hosts": [(os.environ.get('REDIS_HOST', '127.0.0.1'), int(os.environ.get('REDIS_PORT', 6379)))], "capacity": 1500, # 默认100 "expiry": 60, # 默认60秒 },