1. 什么是 Gunicorn?
Gunicorn 是一个 Python WSGI 服务器,可以用来部署 Python Web 应用程序。它提供了高性能、高可用性和灵活的配置选项。
2. 什么是 Flask?
Flask 是一个轻量级的 Python Web 框架,提供了灵活的路由、模板引擎和请求对象等功能。它是构建 Web 应用程序的理想选择。
3. 什么是 Docker?
Docker 是一个容器化的解决方案,允许开发者将应用程序和依赖项打包到一个容器中,然后在任何支持 Docker 的环境中运行。它提供了高效的开发、测试和部署体验。
4. Gunicorn+Flask+Docker 入门案例
4.1 创建 Flask 应用程序
首先,创建一个新的目录,例如 myflaskapp
,然后创建 app.py
文件:
from flask import Flask, request, jsonifyapp = Flask(__name__)@app.route('/', methods=['GET'])
def hello_world():return jsonify({'message': 'Hello, World!'})if __name__ == '__main__':app.run(debug=True)
这个示例中,我们创建了一个简单的 Flask 应用程序,提供了一个 /
路由,返回一个 JSON 对象。
4.2 创建 Dockerfile
创建一个新的文件 Dockerfile
,用于构建 Docker 镜像:
FROM python:3.9-slimWORKDIR /appCOPY requirements.txt .RUN pip install -r requirements.txtCOPY . .CMD ["gunicorn", "-w 4", "app:app"]
这个示例中,我们从 Python 3.9 的 slim 镜像开始,然后安装依赖项,复制应用程序代码,最后设置容器启动命令为 Gunicorn 服务器。
4.3 创建 requirements.txt 文件
创建一个新的文件 requirements.txt
,用于记录应用程序的依赖项:
Flask==2.0.1
gunicorn==20.1.0
这个示例中,我们记录了 Flask 和 Gunicorn 两个依赖项。
4.4 构建 Docker 镜像
使用以下命令构建 Docker 镜像:
docker build -t myflaskapp .
这个命令将使用 Dockerfile
文件构建一个名为 myflaskapp
的 Docker 镜像。
4.5 运行 Docker 容器
使用以下命令运行 Docker 容器:
docker run -p 5000:5000 myflaskapp
这个命令将运行容器,并将容器的端口 5000 映射到宿主机的端口 5000。
4.6 访问应用程序
使用浏览器访问 http://localhost:5000
,可以看到应用程序的响应结果:
{"message": "Hello, World!"
}
这个示例中,我们使用 Gunicorn+Flask+Docker 构建了一个简单的 Web 应用程序,可以在 Docker 容器中运行。