群晖NAS通过docker部署Flask(续)

Flask部署系列

群晖NAS通过docker部署Flask
在 Windows 平台部署 Flask
如何在 CentOS 6.5 上部署 Flask

本篇对群晖上的 docker 容器部署进行补充说明。

pipreqs 模块生成 requirements.txt 文件

在正式将代码上传到 NAS 之前,需要将项目的依赖全部放入到 requirements.txt 文件。使用 pip freeze > requirements.txt 命令生成 requirements.txt,需要手工删除,比较麻烦。变通方法是使用 pipreqs 模块。

pipreqs 使用 pip 命令安装:

pip install pipreqs

然后在项目的根目录,使用下面的命令将项目的依赖写入 requirements.txt 文件。

pipreqs ./

在 Windows 平台,需要制定字符编码:

pipreqs ./ --encoding=utf8

pipreqs 写入到 requirements.txt 可能存在误差,不一定百分百准确。

Gunicorn + Gevent

Gunicorn 是一个 Python 的 WSGI HTTP 服务器。它所在的位置通常是在反向代理(如 Nginx)或者 负载均衡(如 AWS ELB)和一个 web 应用(比如 Django 或者 Flask)之间。它是一个移植自 Ruby 的 Unicorn 项目的 pre-fork worker 模型,既支持 eventlet 也支持 greenlet。

Gevent 做协程,解决高并发的问题。

在 requirements.txt 文件的后面,加上 gunicorn 和 gevent :

Flask==2.0.1
Flask_HTTPAuth==4.4.0
flask_marshmallow==0.14.0
Flask_SQLAlchemy==2.5.1
Werkzeug==2.0.1
marshmallow-sqlalchemy
pymysql
gunicorn
gevent

编写 gunicorn.conf 配置文件

在 gunicorn.conf.py 文件中,进行如下设置:

workers = 3               # 定义同时开启的处理请求的进程数量,根据网站流量适当调整
worker_class = "gevent"   # 采用gevent库,支持异步处理请求,提高吞吐量
bind = "0.0.0.0:50060"

制作 Dockerfile

FROM python:3.6-stretch

WORKDIR /app
ADD . /app

RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

CMD ["gunicorn", "main:app", "-c", "./gunicorn.conf.py"]

制作 Docker 镜像

通过 ssh 连接到群晖系统,在项目文件的根文件夹运行下面的命令生成 docker 镜像:

docker build -t dockername .

群晖 docker 中启动镜像

设置端口映射后启动容器。

部署完成。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值