From 0b554f36691f85d990fe7041d24bdcce8cf7bb74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BC=BA?= <1206709430@qq.com> Date: Tue, 2 Jan 2024 22:10:57 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E9=BB=98=E8=AE=A4=E9=9B=86?= =?UTF-8?q?=E6=88=90celery=E4=B8=8Eredis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/conf/env.example.py | 16 ++--- backend/requirements.txt | 1 + docker-compose.yml | 130 +++++++++++++++++------------------- 3 files changed, 72 insertions(+), 75 deletions(-) diff --git a/backend/conf/env.example.py b/backend/conf/env.example.py index 03e8c1b..f20a698 100644 --- a/backend/conf/env.example.py +++ b/backend/conf/env.example.py @@ -7,12 +7,12 @@ from application.settings import BASE_DIR # ================================================= # # 数据库 ENGINE ,默认演示使用 sqlite3 数据库,正式环境建议使用 mysql 数据库 # sqlite3 设置 -DATABASE_ENGINE = "django.db.backends.sqlite3" -DATABASE_NAME = os.path.join(BASE_DIR, "db.sqlite3") +# DATABASE_ENGINE = "django.db.backends.sqlite3" +# DATABASE_NAME = os.path.join(BASE_DIR, "db.sqlite3") # 使用mysql时,改为此配置 -# DATABASE_ENGINE = "django.db.backends.mysql" -# DATABASE_NAME = 'django-vue-admin' # mysql 时使用 +DATABASE_ENGINE = "django.db.backends.mysql" +DATABASE_NAME = 'django-vue3-admin' # mysql 时使用 # 数据库地址 改为自己数据库地址 DATABASE_HOST = "127.0.0.1" @@ -21,16 +21,16 @@ DATABASE_PORT = 3306 # # 数据库用户名 DATABASE_USER = "root" # # 数据库密码 -DATABASE_PASSWORD = "123456" +DATABASE_PASSWORD = "DVADMIN3" # 表前缀 TABLE_PREFIX = "dvadmin_" # ================================================= # # ******** redis配置,无redis 可不进行配置 ******** # # ================================================= # -# REDIS_PASSWORD = '' -# REDIS_HOST = '127.0.0.1' -# REDIS_URL = f'redis://:{REDIS_PASSWORD or ""}@{REDIS_HOST}:6380' +REDIS_PASSWORD = 'DVADMIN3' +REDIS_HOST = '127.0.0.1' +REDIS_URL = f'redis://:{REDIS_PASSWORD or ""}@{REDIS_HOST}:6379' # ================================================= # # ****************** 功能 启停 ******************* # # ================================================= # diff --git a/backend/requirements.txt b/backend/requirements.txt index 95b96f8..4824df6 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -28,3 +28,4 @@ uvicorn==0.23.2 gunicorn==21.2.0 gevent==23.9.1 Pillow==10.1.0 +dvadmin-celery==1.0.5 diff --git a/docker-compose.yml b/docker-compose.yml index 13d8033..c08a0ef 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,6 +13,7 @@ services: - ./docker_env/nginx/my.conf:/etc/nginx/conf.d/my.conf expose: - "8080" + restart: always networks: network: ipv4_address: 177.10.0.11 @@ -23,9 +24,8 @@ services: dockerfile: ./docker_env/django/Dockerfile container_name: dvadmin3-django working_dir: /backend -# 打开mysql 时,打开此选项 -# depends_on: -# - dvadmin3-mysql + depends_on: + - dvadmin3-mysql environment: PYTHONUNBUFFERED: 1 DATABASE_HOST: dvadmin3-mysql @@ -42,74 +42,70 @@ services: network: ipv4_address: 177.10.0.12 -# dvadmin3-mysql: -# image: mysql:5.7 -# container_name: dvadmin3-mysql -# #使用该参数,container内的root拥有真正的root权限,否则,container内的root只是外部的一个普通用户权限 -# #设置为true,不然数据卷可能挂载不了,启动不起 -## privileged: true -# restart: always -# ports: -# - "3306:3306" -# environment: -# MYSQL_ROOT_PASSWORD: "123456" -# MYSQL_DATABASE: "dvadmin3_pro" -# TZ: Asia/Shanghai -# command: -# --wait_timeout=31536000 -# --interactive_timeout=31536000 -# --max_connections=1000 -# --default-authentication-plugin=mysql_native_password -# volumes: -# - "./docker_env/mysql/data:/var/lib/mysql" -# - "./docker_env/mysql/conf.d:/etc/mysql/conf.d" -# - "./docker_env/mysql/logs:/logs" -# networks: -# network: -# ipv4_address: 177.10.0.13 + dvadmin3-mysql: + image: mysql:8.0 + container_name: dvadmin3-mysql + privileged: true + restart: always + ports: + - "3306:3306" + environment: + MYSQL_ROOT_PASSWORD: "DVADMIN3" + MYSQL_DATABASE: "django-vue3-admin" + TZ: Asia/Shanghai + command: + --wait_timeout=31536000 + --interactive_timeout=31536000 + --max_connections=1000 + --default-authentication-plugin=mysql_native_password + volumes: + - "./docker_env/mysql/data:/var/lib/mysql" + - "./docker_env/mysql/conf.d:/etc/mysql/conf.d" + - "./docker_env/mysql/logs:/logs" + networks: + network: + ipv4_address: 177.10.0.13 -# 如果使用celery 插件,请自行打开此注释 -# dvadmin3-celery: -# build: -# context: . -# dockerfile: ./docker_env/celery/Dockerfile -# # image: django:2.2 -# container_name: dvadmin3-celery -# working_dir: /backend -# depends_on: -# - dvadmin3-mysql -# environment: -# PYTHONUNBUFFERED: 1 -# DATABASE_HOST: dvadmin3-mysql -# TZ: Asia/Shanghai -# volumes: -# - ./backend:/backend -# - ./logs/log:/var/log -# restart: always -# networks: -# network: -# ipv4_address: 177.10.0.14 + dvadmin3-celery: + build: + context: . + dockerfile: ./docker_env/celery/Dockerfile + container_name: dvadmin3-celery + working_dir: /backend + depends_on: + - dvadmin3-mysql + environment: + PYTHONUNBUFFERED: 1 + DATABASE_HOST: dvadmin3-mysql + TZ: Asia/Shanghai + volumes: + - ./backend:/backend + - ./logs/log:/var/log + restart: always + networks: + network: + ipv4_address: 177.10.0.14 -# dvadmin3-redis: -# image: redis:6.2.6-alpine # 指定服务镜像,最好是与之前下载的redis配置文件保持一致 -# container_name: dvadmin3-redis # 容器名称 -# restart: on-failure # 重启方式 -# environment: -# - TZ=Asia/Shanghai # 设置时区 -# volumes: # 配置数据卷 -# - ./docker_env/redis/data:/data -# - ./docker_env/redis/redis.conf:/etc/redis/redis.conf -# ports: # 映射端口 -# - "6379:6379" -# sysctls: # 设置容器中的内核参数 -# - net.core.somaxconn=1024 -# command: /bin/sh -c "echo 'vm.overcommit_memory = 1' >> /etc/sysctl.conf && redis-server /etc/redis/redis.conf --appendonly yes" # 指定配置文件并开启持久化 -# privileged: true # 使用该参数,container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限 -# networks: -# network: -# ipv4_address: 177.10.0.15 + dvadmin3-redis: + image: redis:6.2.6-alpine # 指定服务镜像,最好是与之前下载的redis配置文件保持一致 + container_name: dvadmin3-redis # 容器名称 + restart: always + environment: + - TZ=Asia/Shanghai # 设置时区 + volumes: # 配置数据卷 + - ./docker_env/redis/data:/data + - ./docker_env/redis/redis.conf:/etc/redis/redis.conf + ports: # 映射端口 + - "6379:6379" + sysctls: # 设置容器中的内核参数 + - net.core.somaxconn=1024 + command: /bin/sh -c "echo 'vm.overcommit_memory = 1' >> /etc/sysctl.conf && redis-server /etc/redis/redis.conf --appendonly yes --requirepass DVADMIN3" # 指定配置文件并开启持久化 + privileged: true # 使用该参数,container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限 + networks: + network: + ipv4_address: 177.10.0.15 networks: From 97737c3ef167c6e4c43fa435a2ab764da3d9bfe9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BC=BA?= <1206709430@qq.com> Date: Tue, 2 Jan 2024 23:17:39 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0docker=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E4=B8=80=E9=94=AE=E5=90=AF=E5=8A=A8=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/application/settings.py | 2 +- backend/conf/env.example.py | 2 +- docker_env/django/Dockerfile | 3 +++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/backend/application/settings.py b/backend/application/settings.py index 7f8e7d5..70446c1 100644 --- a/backend/application/settings.py +++ b/backend/application/settings.py @@ -404,7 +404,7 @@ PLUGINS_URL_PATTERNS = [] # ********** 一键导入插件配置开始 ********** # 例如: # from dvadmin_upgrade_center.settings import * # 升级中心 -# from dvadmin_celery.settings import * # celery 异步任务 +from dvadmin_celery.settings import * # celery 异步任务 # from dvadmin_third.settings import * # 第三方用户管理 # from dvadmin_ak_sk.settings import * # 秘钥管理管理 # from dvadmin_tenants.settings import * # 租户管理 diff --git a/backend/conf/env.example.py b/backend/conf/env.example.py index f20a698..bf015db 100644 --- a/backend/conf/env.example.py +++ b/backend/conf/env.example.py @@ -15,7 +15,7 @@ DATABASE_ENGINE = "django.db.backends.mysql" DATABASE_NAME = 'django-vue3-admin' # mysql 时使用 # 数据库地址 改为自己数据库地址 -DATABASE_HOST = "127.0.0.1" +DATABASE_HOST = '127.0.0.1' # # 数据库端口 DATABASE_PORT = 3306 # # 数据库用户名 diff --git a/docker_env/django/Dockerfile b/docker_env/django/Dockerfile index 3f8c93c..7acd383 100644 --- a/docker_env/django/Dockerfile +++ b/docker_env/django/Dockerfile @@ -1,6 +1,9 @@ FROM registry.cn-zhangjiakou.aliyuncs.com/dvadmin-pro/dvadmin3-base-backend:latest WORKDIR /backend COPY ./backend/ . +RUN ls ./conf/ RUN awk 'BEGIN { cmd="cp -i ./conf/env.example.py ./conf/env.py "; print "n" |cmd; }' +RUN sed -i "s|DATABASE_HOST = "127.0.0.1"|DATABASE_HOST = '177.10.0.1'|g" ./conf/env.py +RUN sed -i "s|REDIS_HOST = '127.0.0.1'|REDIS_HOST = '177.10.0.1'|g" ./conf/env.py RUN python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ -r requirements.txt CMD ["/backend/docker_start.sh"]