!94 修改了docker 一键部署,测试OK

Merge pull request !94 from Ranee/master
This commit is contained in:
六翼羊王
2023-05-07 08:18:37 +00:00
committed by Gitee
9 changed files with 106 additions and 27 deletions
-1
View File
@@ -3,6 +3,5 @@ dockerdata
docker-compose.yml
Dockerfile.server
README.md
requirements.txt
!dockerdata/config.py
!dockerdata/start.sh
+31
View File
@@ -0,0 +1,31 @@
FROM python:3.7-alpine
COPY . /app/
WORKDIR /app/
ENV TIME_ZONE Asia/Shanghai
ENV PIPURL "https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.douban.com"
RUN apk update \
&& apk add --virtual mysqlclient-build gcc python3-dev musl-dev \
&& apk add --no-cache mariadb-dev \
&& apk add --virtual system-build linux-headers libffi-dev \
&& apk add --no-cache jpeg-dev zlib-dev freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev \
&& apk add --no-cache bash bash-doc bash-completion \
&& apk add --no-cache libxslt-dev tzdata g++
RUN echo "${TIME_ZONE}" > /etc/timezone \
&& ln -sf /usr/share/zoneinfo/${TIME_ZONE} /etc/localtime
RUN pip --no-cache-dir install -i ${PIPURL} --upgrade pip \
&& pip --no-cache-dir install -i ${PIPURL} -r requirements.txt \
&& pip --no-cache-dir install -i ${PIPURL} gunicorn
RUN 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
WORKDIR /app
CMD /bin/sh
-15
View File
@@ -1,15 +0,0 @@
FROM pearadminflask/python3.7-flask:pillow
COPY . /app/
COPY dockerdata/config.py /app/applications/
COPY dockerdata/start.sh /app
WORKDIR /app/
ENV TIME_ZONE Asia/Shanghai
RUN echo "${TIME_ZONE}" > /etc/timezone \
&& ln -sf /usr/share/zoneinfo/${TIME_ZONE} /etc/localtime \
&& chmod +x /app/start.sh
CMD ./start.sh
+18 -9
View File
@@ -164,19 +164,26 @@ curl -L https://github.com/docker/compose/releases/download/1.26.2/docker-compos
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
chmod -R 777 dockerdata/mysql/
#运行如下命令,有输入版本,表示docker-compose 可以用了
docker-compose --version
docker-compose up -d # -d后台运行
docker-compose stop # 停止启动
docker-compose down # 清除容器
dockerdata/config.py # 配置文件
dockerdata/mysql/initdb/ # MySQL初始化数据在
rm -rf dockerdata/mysql/data/* # down掉容器后启动需要清除删除data
dockerdata/restart_mysql_data.sh #重置dokcer数据库
#在当前目录执行如下命令即可以运行app
docker-compose -f dockercompose.yaml up
#看到如下表示运行成功,由于pip下载慢,需要一些时间,请耐心等待;如果安装失败,重新执行上面的命令即可。
#运行后在浏览器访问127.0.0.15000
#如果要停止容器运行,在当前文件夹执行如下命令:
docker-compose -f dockercompose.yaml dwon
```
#### Pear Admin Flask 还有以下几个版本:
```
Pear Admin Flask 还有以下几个版本:
**[mini 分支版本](https://gitee.com/pear-admin/pear-admin-flask/tree/mini/)**
@@ -198,3 +205,5 @@ main 分支是对 mini 分支的后续,目前还在开发中。
| ![](docs/assets/1.jpg) | ![](docs/assets/2.jpg) |
| ![](docs/assets/3.jpg) | ![](docs/assets/4.jpg) |
| ![](docs/assets/5.jpg) | ![](docs/assets/6.jpg) |
```
+27
View File
@@ -0,0 +1,27 @@
version: '3'
services:
redis:
image: redis
ports:
- "63799:6379"
mysql:
image: 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
ports:
- "5000:5000"
depends_on:
- redis
- mysql
restart: always
command: sh -c "./start.sh"
+3 -1
View File
@@ -8,6 +8,8 @@ WORKDIR /app/
ENV TIME_ZONE Asia/Shanghai
RUN chmod +x /app/start.sh
RUN echo "${TIME_ZONE}" > /etc/timezone \
&& ln -sf /usr/share/zoneinfo/${TIME_ZONE} /etc/localtime \
&& chmod +x /app/start.sh
CMD ./start.sh
+26
View File
@@ -0,0 +1,26 @@
#!/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 Flask application
echo "Starting Flask application..."
python3 app.py