From 145ccbfb3e9a100dfd5f8a66e850693d4fa72243 Mon Sep 17 00:00:00 2001 From: wojiaoyishang Date: Sun, 26 Jan 2025 16:04:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9D=83=E9=99=90=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E7=B1=BB=E5=9E=8B=E6=B7=BB=E5=8A=A0=E9=97=AE=E9=A2=98?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E5=A4=8D=E6=97=A5=E5=BF=97=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E8=A1=A8=E6=A0=BC=E6=9C=AA=E5=AF=B9=E9=BD=90=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 17 ++++++++++++---- Dockerfile | 26 ++++++++++++++++-------- app.py | 1 - docker-compose.yaml | 17 ++++++++++++++++ dockercompose.yaml | 30 ---------------------------- dockerdata/start.sh | 26 +++--------------------- templates/system/admin_log/main.html | 2 +- templates/system/power/add.html | 4 ++-- 8 files changed, 54 insertions(+), 69 deletions(-) create mode 100644 docker-compose.yaml delete mode 100644 dockercompose.yaml diff --git a/.dockerignore b/.dockerignore index 1571289..b859899 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,8 +1,17 @@ -#build时候不会copy以下文件 +# 构建的相关文件 dockerdata docker-compose.yml Dockerfile.server README.md -!dockerdata/config.py -!dockerdata/start.sh -!dockerdata/gunicorn.conf.py \ No newline at end of file + +# Python 相关文件 +migrations/ +instance/ +flask_session/ +venv/ +.idea/ +*.log +*.db + +# 允许拷贝的文件 +!dockerdata/start.sh \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 2dde1e5..3e5612c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,28 @@ -FROM pearadminflask/python3.7-flask:pillow +FROM python:3.11-bookworm +# 复制项目文件 +RUN mkdir -p /app COPY . /app/ -COPY dockerdata/start.sh /app/ -COPY dockerdata/gunicorn.conf.py /app/ +COPY ./dockerdata/start.sh /app/start.sh WORKDIR /app/ +# 设置必备项 ENV TIME_ZONE Asia/Shanghai -ENV PIPURL "https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.douban.com" RUN echo "${TIME_ZONE}" > /etc/timezone \ && ln -sf /usr/share/zoneinfo/${TIME_ZONE} /etc/localtime -RUN apk update && apk add mysql-client -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 +# 安装必备库 +RUN python3 -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ + +# 初始化数据库 +RUN flask db init +RUN flask db migrate +RUN flask db upgrade +RUN flask admin init + +# 运行命令 +RUN chmod +x start.sh + +# 保持执行 CMD /bin/sh diff --git a/app.py b/app.py index d7cfec3..a5622a5 100644 --- a/app.py +++ b/app.py @@ -2,6 +2,5 @@ from applications import create_app app = create_app() - if __name__ == '__main__': app.run() diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..c7172c3 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,17 @@ +version: '3' +services: + flask: + build: + context: . + dockerfile: Dockerfile + container_name: flask + ports: + - "5000:5000" + restart: always + command: sh -c "/app/start.sh" + networks: + - my_bridge_network + +networks: + my_bridge_network: + driver: bridge \ No newline at end of file diff --git a/dockercompose.yaml b/dockercompose.yaml deleted file mode 100644 index 6ca9424..0000000 --- a/dockercompose.yaml +++ /dev/null @@ -1,30 +0,0 @@ -version: '3' -services: - redis: - image: redis - container_name: redis - ports: - - "63799:6379" - mysql: - image: mysql - container_name: mysql - environment: - MYSQL_ROOT_PASSWORD: 123456 - LANG: C.UTF-8 - TZ: Asia/Shanghai - MYSQL_CHARSET: utf8mb4 - MYSQL_COLLATION: utf8mb4_unicode_ci - ports: - - "3306:3306" - flask: - build: - context: . - dockerfile: Dockerfile - container_name: flask - ports: - - "8000:8000" - depends_on: - - redis - - mysql - restart: always - command: sh -c "./start.sh" diff --git a/dockerdata/start.sh b/dockerdata/start.sh index 54dfe08..c2d76af 100644 --- a/dockerdata/start.sh +++ b/dockerdata/start.sh @@ -1,25 +1,5 @@ #!/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 +# 运行程序 +echo "Starting application..." +python3 app.py \ No newline at end of file diff --git a/templates/system/admin_log/main.html b/templates/system/admin_log/main.html index 7acb5bb..ff205b6 100644 --- a/templates/system/admin_log/main.html +++ b/templates/system/admin_log/main.html @@ -72,7 +72,7 @@ elem: '#log-login-table', url: MODULE_PATH + 'loginLog', page: true, - cols: cols, + cols: JSON.parse(JSON.stringify(cols)), // 复制对象 skin: 'line', toolbar: false }) diff --git a/templates/system/power/add.html b/templates/system/power/add.html index 188a193..f80a5d9 100644 --- a/templates/system/power/add.html +++ b/templates/system/power/add.html @@ -26,7 +26,7 @@
+ class="layui-input">
@@ -41,7 +41,7 @@
+ class="layui-input">