From c6b71d2dfe0d2199d4f39dd4fedb11422cf759a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E7=BF=BC=E7=BE=8A=E7=8E=8B?= <1993333339@qq.com> Date: Mon, 29 May 2023 07:48:55 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9docker-compose=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 3 ++- dockerdata/start.sh | 29 ++++++++++++++++++++++++----- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index d323b80..2dde1e5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,7 @@ FROM pearadminflask/python3.7-flask:pillow COPY . /app/ +COPY dockerdata/start.sh /app/ COPY dockerdata/gunicorn.conf.py /app/ WORKDIR /app/ @@ -14,4 +15,4 @@ RUN chmod +x start.sh RUN sed -i 's/MYSQL_HOST = "127.0.0.1"/MYSQL_HOST = "mysql"/' applications/config.py RUN sed -i 's/REDIS_HOST = "127.0.0.1"/REDIS_HOST = "redis"/' applications/config.py -CMD /bin/sh \ No newline at end of file +CMD /bin/sh diff --git a/dockerdata/start.sh b/dockerdata/start.sh index 7191f70..54dfe08 100644 --- a/dockerdata/start.sh +++ b/dockerdata/start.sh @@ -1,6 +1,25 @@ -#!/bin/sh -while ! flask db init ; do - sleep 5 ; -done ; -flask db migrate && flask db upgrade && flask admin init +#!/bin/bash + +# Wait for MySQL container to be ready +echo "Waiting for MySQL container to start..." +until mysql -h mysql -uroot -p123456 -e ";" 2>/dev/null; do + echo "MySQL container not ready, sleeping for 5 seconds..." + sleep 5 +done +echo "MySQL container started successfully!" + +# to start create the dababase +echo " start to create the databse... " +mysql -uroot -p123456 -hmysql -e 'CREATE DATABASE PearAdminFlask DEFAULT CHARSET UTF8;' + + +# Initialize Flask database +echo "Initializing Flask database..." +flask db init +flask db migrate +flask db upgrade +flask admin init + +# Start gunicorn application +echo "Starting gunicorn application..." exec gunicorn -c gunicorn.conf.py "applications:create_app()" \ No newline at end of file