相关教程
环境配置
- 运行环境 : CentOS7
- Python版本 : Python3.7
- Docker版本 : Docker 19.03.12
使用Docker将本地Flask应用打包,并完成部署
1. 编写Flask
新建目录demo,进入;新建app.py文件,内容为
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Docker deploy Flask'
if __name__ == '__main__':
app.run()
2. 配置uwsgi
新建config.ini文件,内容为:
[uwsgi]
# 启动主进程,来管理其他进程
master = true
# 地址和端口号
http = :8000
# app.py路径
wsgi-file = app.py
# uwsgi指定的是application,而flask中是app
callable = app
# 开启的进程数量
processes = 2
# 运行线程
threads = 8
# 设置用于uwsgi包解析的内部缓存区大小为64k。默认是4k
buffer-size = 32768
3. Dockerfile
新建Dockerfile文件,内容为:
# 所采用的基础镜像
FROM python:3.7
# 为镜像添加标签
LABEL version="v1" description="Docker deploy Flask" by="Dalao"
# 配置工作目录
WORKDIR /usr/src/app
# 在镜像容器中执行命令
RUN pip install Flask && pip install uwsgi -i https://pypi.tuna.tsinghua.edu.cn/simple/
# 将主机中目录内容拷贝到镜像目录下
COPY . .
# 容器启动时执行指令,每个Dockerfile只能有一条CMD命令
CMD ["uwsgi","config.ini"]
4. 构建
进入demo目录,执行:
docker build -t mydemo .
- -t : 指定镜像名称,此处为mydemo
- . 指定创建时的目录
5. 启动
docker run -itd -p 80:8080 mydemo
访问http://192.168.3.20
总结
-
Flask应用的部署方式有gunicorn与uwsgi两种方式
-
目前windows尚不支持uwsgi包的使用