1. 项目目录
2. dockerfile
# FROM:所构建镜像基于什么镜像,尽量小
FROM python:3.7
# WORKDIR:之后的shell语句是运行在哪个目录下
# 写的是要部署到服务器上的路径,如果这个镜像没有这个文件就会自动创建这个文件
ENV MY_HOME=/hetai
RUN mkdir -p $MY_HOME
WORKDIR $MY_HOME
# COPY:将当前宿主机的文件拷贝到镜像里面去
# 这里我们是把python安装的依赖requirements.txt拷贝到镜像里面去
COPY requirements.txt .
# RUN 执行shell命令,在构建的时候就会运行
# 这里是安装python依赖 并且后面加一个镜像源这样速度会快很多
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
# 复制当前目录到项目中的WorkDir中
COPY . .
# 第一个app是我们得flask得python文件名 第二个app为flask的应用名
ENTRYPOINT ["gunicorn", "index:app", "-c", "./gunicorn.conf.py"]
3. requirements.txt
click==8.0.3
colorama==0.4.4
Flask==2.0.2
itsdangerous==2.0.1
Jinja2==3.0.3
MarkupSafe==2.0.1
pymongo==4.0.1
Werkzeug==2.0.2
gunicorn
gevent
4. docker-compose.yaml
version: '3.8'
services:
hetai_app:
build: .
ports:
- "8088:8080"
volumes:
- .:/info
depends_on:
- my_mongo
my_mongo:
image: mongo
restart: always
ports:
- "27017:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: zzz123
5. gunciorn.conf.py
workers = 5
worker_class = "gevent"
bind = "0.0.0.0:8080"
- 最后到服务器上直接在docker-compose.yaml的文件目录下运行docker-compose up就可以直接一键部署