From 92b8cde7aee117e807e1b4964af616847073fdf7 Mon Sep 17 00:00:00 2001 From: lorenzo Date: Mon, 27 Jan 2025 15:54:13 +0000 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96docker=E9=83=A8?= =?UTF-8?q?=E7=BD=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: lorenzo --- init.sh | 53 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 46 insertions(+), 7 deletions(-) diff --git a/init.sh b/init.sh index 8c377ed6f..2430d8bc9 100644 --- a/init.sh +++ b/init.sh @@ -1,5 +1,6 @@ #!/bin/bash ENV_FILE=".env" +HOST="177.10.0.13" # 检查 .env 文件是否存在 if [ -f "$ENV_FILE" ]; then echo "$ENV_FILE 文件已存在。" @@ -15,17 +16,55 @@ else 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|DATABASE_HOST = '127.0.0.1'|DATABASE_HOST = '$HOST'|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 +echo "正在启动容器..." 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 "如访问不到,请检查防火墙配置" + +MYSQL_PORT=3306 +REDIS_PORT=6379 + +check_mysql() { + if nc -z "$HOST" "$MYSQL_PORT" >/dev/null 2>&1; then + echo "MySQL 服务正在运行在 $HOST:$MYSQL_PORT" + return 0 + else + return 1 + fi +} + +check_redis() { + if nc -z "$HOST" "$REDIS_PORT" >/dev/null 2>&1; then + echo "Redis 服务正在运行在 $HOST:$REDIS_PORT" + return 0 + else + return 1 + fi +} + +i=1 +while [ $i -le 8 ]; do + if check_mysql || check_redis; then + echo "正在迁移数据..." + docker exec dvadmin3-django python3 manage.py makemigrations + docker exec dvadmin3-django python3 manage.py migrate + echo "正在初始化数据..." + docker exec dvadmin3-django python3 manage.py init + echo "欢迎使用dvadmin3项目" + echo "登录地址:http://ip:8080" + echo "如访问不到,请检查防火墙配置" + exit 0 + else + echo "第 $i 次尝试:MySQL 或 REDIS服务未运行,等待 2 秒后重试..." + sleep 2 + fi + i=$((i+1)) +done + +echo "尝试 5 次后,MySQL 或 REDIS服务仍未运行" +exit 1 -- Gitee From ecfad1952ab3c96d3ec831c6ede1da002e197f21 Mon Sep 17 00:00:00 2001 From: lorenzo Date: Mon, 27 Jan 2025 15:57:12 +0000 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96docker=E9=83=A8?= =?UTF-8?q?=E7=BD=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: lorenzo --- init.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/init.sh b/init.sh index 2430d8bc9..ab828cb56 100644 --- a/init.sh +++ b/init.sh @@ -26,6 +26,11 @@ fi echo "正在启动容器..." docker-compose up -d +if [ $? -ne 0 ]; then + echo "docker-compose up -d 执行失败!" + exit 1 +fi + MYSQL_PORT=3306 REDIS_PORT=6379 -- Gitee