Python 快速开始
本文档介绍从零开始手动将一个 Python 应用容器化,并部署到 CloudBase 云托管的过程。该项目使用 flask 作为应用运行框架,并使用 gunicorn 作为生产环境的 WSGI 服务器。
代码示例:
https://github.com/TencentCloudBase/cloudbase-examples/tree/master/cloudbaserun/python
或者一键部署到云托管:
项目结构
项目根目录下必须包含以下文件:
├── .dockerignore
├── Dockerfile
├── README.md
├── main.py
└── requirements.txt
.dockerignore: 用于指定在构建 Docker 镜像时需要排除的文件和目录,通过使用.dockerignore文件,可以减少镜像的大小和构建时间。Dockerfile: 是一个文本文件,包含了一系列指令,用于定义如何构建一个 Docker 镜像。通过编写 Dockerfile,可以自动化地创建包含应用程序及其运行环境的镜像,实现环境一致性和快速部署。main.py: 应用服务的启动文件,业务逻辑实现。requirements.txt: 列出了应用所需的 Python 包和版本信息,用于在构建 Docker 镜像时安装依赖。
第 1 步:编写基础应用
创建名为 helloworld-python 的新目录,并进入此目录中:
mkdir helloworld-python
cd helloworld-python
创建名为 main.py 的文件,并将以下代码粘贴到其中:
import os
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == "__main__":
app.run(debug=True, host='0.0.0.0', port=80)
以上代码会创建一个基本的 Web 服务器,并监听 80 端口。
第 2 步:管理项目依赖
在项目根目录下,创建一个名为 requirements.txt 的文件,并添加以下内容:
Flask==3.1.1
gunicorn==23.0.0
如果您需要其他依赖,请在 requirements.txt 中添加相应的包和版本。
另外你也可以使用 Python 虚拟环境来管理项目依赖,确保项目的依赖不会与系统的其他 Python 包冲突:
-
创建虚拟环境
python -m venv envsource env/bin/activate # 激活虚拟环境 -
安装依赖并生成 requirements.txt
pip install Flask gunicornpip freeze > requirements.txt
提示
使用 pip freeze 生成 requirements.txt 文件必须在 python 虚拟环境下进行,否则生成的 requirements.txt 中会包含机器下的所有依赖,可能会导致部署失败。