通过gunicorn+docker部署flask项目
由于学习上的原因,有幸接触到了 Python 项目部署到服务器的知识点,经过查找资料了解到,通过 flask 框架编写 Python 项目,并通过 gunicorn 运行项目以及 docker容器化服务,即可实现将其部署到服务器。
1、准备
首先我们需要准备一个完整的能在运行的 flask 项目,并且需要在服务器上安装好 docker 容器。
以下我使用一个基础的 flask Hello World 项目进行配置,项目的基本结构如下:
其中app.py
是程序的启动类文件,Dockerfile
是docker的配置文件,可以用来创建docker的镜像文件,requirements.txt
是所有依赖的名称,docker 会根据这些名称来下载你所需要的依赖,gunicorn.conf.py
是 gunicorn 服务器的配置文件,其中有线程以及端口等内容。
2、配置文件编辑
- 首先是启动类的内容
启动类是 flask 框架的必备内容,其内容如下:
1 | from flask import Flask |
- requirements.txt文件内容
里头写上所有我们所需要的依赖,如下:
1 | flask |
- gunicorn.conf.py
里头写上 gunicorn 启动的时候的配置文件,如下:
1 | workers = 4 # 定义同时开启的处理请求的进程数量,根据网站流量适当调整 |
- Dockerfile
该文件是 docker 创建镜像的时候比较重要的文件,通过读取其中的内容创建一个镜像,内容如下:
1 | # FROM:所构建镜像基于什么镜像 |
3、构建docker镜像并运行
将以上文件打包上传到服务器上,然后在该目录下即可创建 docker 的镜像文件。
通过以下的命令即可创建:
1 | docker build -t 'myflask_app2' . |
注意:此处由于我之前已经创建过一次了,所以直接成功,首次创建回=会遍历你的配置文件然后下载。
完成之后就会显示出已经创建的镜像文件
随后运行该镜像文件,通过以下的命令:
1 | docker run -p 8087:8086 --name myflask2 myflask_app2 |
运行成功之后通过访问服务器的8087端口,即可访问我们的内容
随后通过docker ps
可以查看现在正在运行的镜像
至此就算是部署成功了。