feat: 优化docker部署
This commit is contained in:
@@ -21,13 +21,15 @@ DATABASE_PORT = 3306
|
|||||||
# # 数据库用户名
|
# # 数据库用户名
|
||||||
DATABASE_USER = "root"
|
DATABASE_USER = "root"
|
||||||
# # 数据库密码
|
# # 数据库密码
|
||||||
DATABASE_PASSWORD = "DVADMIN3"
|
DATABASE_PASSWORD = 'DVADMIN3'
|
||||||
|
|
||||||
# 表前缀
|
# 表前缀
|
||||||
TABLE_PREFIX = "dvadmin_"
|
TABLE_PREFIX = "dvadmin_"
|
||||||
# ================================================= #
|
# ================================================= #
|
||||||
# ******** redis配置,无redis 可不进行配置 ******** #
|
# ******** redis配置,无redis 可不进行配置 ******** #
|
||||||
# ================================================= #
|
# ================================================= #
|
||||||
|
REDIS_DB = 1
|
||||||
|
CELERY_BROKER_DB = 3
|
||||||
REDIS_PASSWORD = 'DVADMIN3'
|
REDIS_PASSWORD = 'DVADMIN3'
|
||||||
REDIS_HOST = '127.0.0.1'
|
REDIS_HOST = '127.0.0.1'
|
||||||
REDIS_URL = f'redis://:{REDIS_PASSWORD or ""}@{REDIS_HOST}:6379'
|
REDIS_URL = f'redis://:{REDIS_PASSWORD or ""}@{REDIS_HOST}:6379'
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "3306:3306"
|
- "3306:3306"
|
||||||
environment:
|
environment:
|
||||||
MYSQL_ROOT_PASSWORD: "DVADMIN3"
|
MYSQL_ROOT_PASSWORD: ${MYSQL_PASSWORD}
|
||||||
MYSQL_DATABASE: "django-vue3-admin"
|
MYSQL_DATABASE: "django-vue3-admin"
|
||||||
TZ: Asia/Shanghai
|
TZ: Asia/Shanghai
|
||||||
command:
|
command:
|
||||||
@@ -101,7 +101,7 @@ services:
|
|||||||
- "6379:6379"
|
- "6379:6379"
|
||||||
sysctls: # 设置容器中的内核参数
|
sysctls: # 设置容器中的内核参数
|
||||||
- net.core.somaxconn=1024
|
- 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" # 指定配置文件并开启持久化
|
command: /bin/sh -c "echo 'vm.overcommit_memory = 1' >> /etc/sysctl.conf && redis-server /etc/redis/redis.conf --appendonly yes --requirepass ${MYSQL_PASSWORD}" # 指定配置文件并开启持久化
|
||||||
privileged: true # 使用该参数,container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限
|
privileged: true # 使用该参数,container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限
|
||||||
networks:
|
networks:
|
||||||
network:
|
network:
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ WORKDIR /backend
|
|||||||
COPY ./backend/ .
|
COPY ./backend/ .
|
||||||
RUN ls ./conf/
|
RUN ls ./conf/
|
||||||
RUN awk 'BEGIN { cmd="cp -i ./conf/env.example.py ./conf/env.py "; print "n" |cmd; }'
|
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|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 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
|
RUN python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ -r requirements.txt
|
||||||
CMD ["/backend/docker_start.sh"]
|
CMD ["/backend/docker_start.sh"]
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
[mysql]
|
[mysql]
|
||||||
#设置mysql客户端默认字符集
|
#设置mysql客户端默认字符集
|
||||||
default-character-set=utf8
|
default-character-set=utf8
|
||||||
socket=/var/run/mysql/mysql.sock
|
socket=/var/lib/mysql/mysql.sock
|
||||||
|
|
||||||
|
|
||||||
[mysqld]
|
[mysqld]
|
||||||
@@ -9,7 +9,7 @@ socket=/var/run/mysql/mysql.sock
|
|||||||
#mysql5.7以后的不兼容问题处理
|
#mysql5.7以后的不兼容问题处理
|
||||||
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
|
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
|
||||||
datadir=/var/lib/mysql
|
datadir=/var/lib/mysql
|
||||||
socket=/var/run/mysql/mysql.sock
|
socket=/var/lib/mysql/mysql.sock
|
||||||
|
|
||||||
# Disabling symbolic-links is recommended to prevent assorted security risks
|
# Disabling symbolic-links is recommended to prevent assorted security risks
|
||||||
symbolic-links=0
|
symbolic-links=0
|
||||||
@@ -30,4 +30,4 @@ default-time_zone='+8:00'
|
|||||||
|
|
||||||
[mysqld_safe]
|
[mysqld_safe]
|
||||||
log-error=/var/log/mariadb/mariadb.log
|
log-error=/var/log/mariadb/mariadb.log
|
||||||
pid-file=/var/run/mariadb/mariadb.pid
|
pid-file=/var/lib/mariadb/mariadb.pid
|
||||||
|
|||||||
31
init.sh
Normal file
31
init.sh
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
ENV_FILE=".env"
|
||||||
|
# 检查 .env 文件是否存在
|
||||||
|
if [ -f "$ENV_FILE" ]; then
|
||||||
|
echo "$ENV_FILE 文件已存在。"
|
||||||
|
else
|
||||||
|
# 生成MYSQL随机密码
|
||||||
|
MYSQL_PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 18)
|
||||||
|
echo "MYSQL_PASSWORD=$MYSQL_PASSWORD" >> "$ENV_FILE"
|
||||||
|
echo "MYSQL随机密码已生成并写入 $ENV_FILE 文件。"
|
||||||
|
# 生成REDIS随机密码
|
||||||
|
REDIS_PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 12)
|
||||||
|
# 将密码写入 .env 文件
|
||||||
|
echo "REDIS_PASSWORD=$REDIS_PASSWORD" >> "$ENV_FILE"
|
||||||
|
echo "REDIS随机密码已生成并写入 $ENV_FILE 文件。"
|
||||||
|
|
||||||
|
awk 'BEGIN { cmd="cp -i ./backend/conf/env.example.py ./backend/conf/env.py "; print "n" |cmd; }'
|
||||||
|
sed -i "s|DATABASE_HOST = '127.0.0.1'|DATABASE_HOST = '177.10.0.13'|g" ./backend/conf/env.py
|
||||||
|
sed -i "s|REDIS_HOST = '127.0.0.1'|REDIS_HOST = '177.10.0.15'|g" ./backend/conf/env.py
|
||||||
|
sed -i "s|DATABASE_PASSWORD = 'DVADMIN3'|DATABASE_PASSWORD = '$MYSQL_PASSWORD'|g" ./backend/conf/env.py
|
||||||
|
sed -i "s|REDIS_PASSWORD = 'DVADMIN3'|REDIS_PASSWORD = '$REDIS_PASSWORD'|g" ./backend/conf/env.py
|
||||||
|
echo "初始化密码创建成功"
|
||||||
|
fi
|
||||||
|
|
||||||
|
docker-compose up -d
|
||||||
|
docker exec dvadmin3-django python manage.py makemigrations
|
||||||
|
docker exec dvadmin3-django python manage.py migrate
|
||||||
|
docker exec dvadmin3-django python manage.py init
|
||||||
|
echo "欢迎使用dvadmin3项目"
|
||||||
|
echo "登录地址:http://ip:8080"
|
||||||
|
echo "如访问不到,请检查防火墙配置"
|
||||||
Reference in New Issue
Block a user