跳到主要内容

构建并部署 Python 应用

代码示例:

https://github.com/TencentCloudBase/cloudbase-examples/tree/master/cloudbaserun/python

点击下方按钮一键部署:

第 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 步:将应用容器化

在项目根目录下,创建一个名为 Dockerfile 的文件,内容如下:

# 使用官方 Python 轻量级镜像
# https://hub.docker.com/_/python
FROM python:3.8-slim

# 将本地代码拷贝到容器内
ENV APP_HOME /app
WORKDIR $APP_HOME
COPY . ./

# 安装依赖
RUN pip install Flask gunicorn

# 启动 Web 服务
# 这里我们使用了 gunicorn 作为 Server,1 个 worker 和 8 个线程
# 如果您的容器实例拥有多个 CPU 核心,我们推荐您把线程数设置为与 CPU 核心数一致
CMD exec gunicorn --bind :80 --workers 1 --threads 8 --timeout 0 main:app

添加一个 .dockerignore 文件,以从容器映像中排除文件:

Dockerfile
README.md
*.pyc
*.pyo
*.pyd
__pycache__
.pytest_cache

第 3 步(可选):本地构建镜像

如果您本地已经安装了 Docker,可以运行以下命令,在本地构建 Docker 镜像:

docker build -t helloworld-python .

构建成功后,运行 docker images,可以看到构建出的镜像:

REPOSITORY          TAG       IMAGE ID         CREATED            SIZE
helloworld-python latest 1c8dfb88c823 8 seconds ago 123MB

随后您可以将此镜像上传至您的镜像仓库。

第 4 步:部署到 CloudBase 云托管

请参考 部署服务版本配置说明