使用docker-compose部署flask项目,gunicorn 启动 flask,想要改完代码后,只需刷新页面(或打开页面),就能看到浏览器中反映的更改。
要运行容器以支持开发工作流,我们将执行以下操作:
Dockerfile
FROM python:3.7
WORKDIR /app
COPY ./requirements.txt /app/
RUN pip install -r /app/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
docker-compose.yml
version: "3"
services:
flask-web:
build: .
ports:
- 8080:8080
working_dir: /app
volumes:
- ./:/app
container_name: flask_dome
command: sh -c "gunicorn app:app -c /app/gunicorn.conf.py"
requirements.txt
Flask==2.0.3
pymongo==4.1.1
gunicorn
gevent
gunicorn.conf.py
workers = 5 # 定义同时开启的处理请求的进程数量,根据网站流量适当调整
worker_class = "gevent" # 采用gevent库,支持异步处理请求,提高吞吐量
bind = "0.0.0.0:8080" # 这里8080可以随便调整
# 进入到项目所在目录,启动项目
docker-compose up
# 停止并删除容器
docker-compose down
改完代码后需要等待几秒钟才会更新。因为节点服务器重新启动可能需要几秒钟,如果出现错误,请在几秒钟后尝试刷新。
对于本地开发设置,使用绑定挂载非常常见。优点是开发人员不需要安装所有的构建工具和环境。