docker-compose部署flask的简单案例

孙胜泫
2023-12-01

使用docker-compose部署flask项目,gunicorn 启动 flask,想要改完代码后,只需刷新页面(或打开页面),就能看到浏览器中反映的更改。

要运行容器以支持开发工作流,我们将执行以下操作:

  • 将源代码装入容器中
  • 安装所有依赖项,包括“dev”依赖项
  • 启动nodemon以监视文件系统更改

docker部署的相关文件

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

# 进入到项目所在目录,启动项目
docker-compose up
# 停止并删除容器
docker-compose down

改完代码后需要等待几秒钟才会更新。因为节点服务器重新启动可能需要几秒钟,如果出现错误,请在几秒钟后尝试刷新。

对于本地开发设置,使用绑定挂载非常常见。优点是开发人员不需要安装所有的构建工具和环境。

 类似资料: