• Unreal is funny !!!

gunicorn+flask Docker部署

IT技术 站长 3年前 (2022-01-18) 4199次浏览 已收录 3个评论
文章目录[隐藏]

项目介绍

最近在开发一个bert文本分类的项目,api 使用 flask 作为 http框架,需要部署在 Docker 上。
环境配置:

  • Flask==2.0.1
  • gunicorn==20.1.0

项目requirements.txt

Flask==2.0.1
gunicorn==20.1.0

代码展示

示例 api.py
一个简单的web 服务,监听 8888端口(

注意这里要绑定 0.0.0.0

from flask import Flask, request, jsonify

app = Flask(__name__)


@app.route('/ready')
def ready():
    return "ok", 400


if __name__ == '__main__':
    app.run(host="0.0.0.0", port=8888)

如果直接 python3 api.py ,则会报以下警告:

 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.

根据文档 flask 文档-部署 ,不可以这么部署,所以我们使用 gunicorn 部署。
安装gunicorn 很简单

pip3 install gunicorn

运行 gunicorn

gunicorn -w 3 -b 0.0.0.0:8888 api:app

-w 3 代表启动3个flask进程
-b 0.0.0.0:8888 代表绑定到 8888端口
api:app 代表启动 api.py 的为 app变量 的 flask

我们写成 dockerfile

dockerfile 示例

FROM python:3.7-slim
COPY requirements.txt /
RUN pip3 install --no-cache-dir  -r /requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

WORKDIR app
RUN mkdir /app/log

ENV PROCESS_CNT ${PROCESS_CNT:-3}
COPY . .
ENTRYPOINT gunicorn -w $PROCESS_CNT -b 0.0.0.0:8888 api:app
EXPOSE 8888

本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:gunicorn+flask Docker部署
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(3)个小伙伴在吐槽
  1. good post
    bXPNOAngicphID2022-02-10 18:07 Reply Windows 10 | Chrome 85.0.4183.121
  2. a great tutorial, thx
    JCjZpIUVdPMxta2022-02-10 18:08 Reply Windows 10 | Chrome 85.0.4183.121
  3. :wink: good ! thx
    KiGLleoTqIHBut2022-02-19 01:28 Reply Windows 10 | Chrome 85.0.4183.121