1

部署环境Ubuntu

使用工具Gunicorn + Gevent + Flask + docker + Pycharm

所有操作均在ubuntu下执行(Gunicorn + Gevent不支持win环境!)

首先先有一个Flask项目(python)

Snipaste_2020-12-31_09-30-26.png

使用蓝图进行封装 / 下显示 {}

Snipaste_2020-12-31_09-30-52.png

开启run.py文件

Snipaste_2020-12-31_10-57-36.png

使用Gunicorn + Gevent 进行启动flask项目

pip install gunicorn gevent

安装时我出现了这样的问题

clipboard.png

可以输入以下命令
sudo apt-get install python3.6-dev

下载完成后可以使用命令启动flask项目

gunicorn -w 4 -b 192.168.1.79:4000 run:app
Snipaste_2020-12-31_09-43-05.png

-w 4是指预定义的工作进程数为4
-b 192.168.1.79:4000指绑定地址ip和端口
run是flask的启动python文件,app则是指flask应用程序实例

Snipaste_2020-12-31_09-50-05.png

这样就证明gunicorn gevent 可以使用!!

接下来我们使用docker进行项目封装成镜像

首先文件目录会有

requirements.txt文件 - 项目所应用的包名写入
gunicorn.conf.py文件 - 定义gevent库及进程数量
Dockerfile文件 - docker打包镜像的命令步骤

Snipaste_2020-12-31_10-00-03.png

requirements.txt文件

可以使用命令进行写入项目所需要的应用包
pip freeze > requirements.txt

gunicorn.conf.py文件
workers = 5        # 定义同时开启的处理请求的进程数量,根据网站流量适当调整
worker_class = "gevent"  # 采用gevent库,支持异步处理请求,提高吞吐量
bind = "0.0.0.0:8080"   # 这里8080可以随便调整

Snipaste_2020-12-31_10-15-39.png

Dockerfile文件
FROM python:3.6
WORKDIR /usr/src/app

RUN pip install --upgrade pip

COPY requirements.txt ./
RUN pip install -r requirements.txt

COPY . .

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

Snipaste_2021-01-12_08-44-39.png

进入root权限 ---- 以下都是root模式执行命令

su root - 输入本机密码

找到项目的cmd路径进行docker打包生成镜像

输入命令:
docker build -t 'docker_flask' .
Snipaste_2020-12-31_10-25-50.png

过程可能会非常漫长...(取决于你的项目环境包的多少)

看到这个就证明打包完成
Snipaste_2020-12-31_10-27-52.png

接下来就是使用docker去启用flask项目

查看打包好的镜像
docker images
Snipaste_2020-12-31_10-30-24.png

使用命令进行启动镜像
(为了防止8080端口占用可以用8088进行映射)
docker run -itd -p 8088:8080 docker_flask

-i   交互式操作
-t 终端
-d 后台运行

查看运行中的docker容器
docker ps
Snipaste_2020-12-31_10-37-20.png

容器已经开启。可以使用本地ip + 8088进行测试
Snipaste_2020-12-31_10-39-10.png

记得开启8088端口 - 可以同网段进行调试。
Snipaste_2020-12-31_10-48-32.png
大功告成!


XiaoMiao
25 声望1 粉丝

i am bug!