Buildpack 通过环境变量支持语言惯用配置。
指定 Python 版本
默认情况下,Python 运行时 Buildpack 使用最新的稳定版 Python 解释器。如果您的应用需要使用特定版本,您可以通过在应用的根目录中添加 .python-version
文件来指定版本。
3.9.9
使用 GOOGLE_PYTHON_VERSION
还可以通过 GOOGLE_PYTHON_VERSION
环境变量指定 Python 版本。如果同时设置了这两个配置,则 GOOGLE_PYTHON_VERSION
值优先于 .python-version
文件。默认情况下,如果未指定 .python-version
文件和 GOOGLE_PYTHON_VERSION
环境变量,则使用最新的 LTS 版本的 Python。
要在部署应用时将 Buildpack 配置为使用 Python 3.10,请运行以下命令:
pack build sample-python --builder=gcr.io/buildpacks/builder \
--env GOOGLE_PYTHON_VERSION="3.10.x"
您还可以使用 project.toml
项目描述符对环境变量以及项目文件进行编码。请参阅使用环境变量构建应用中的说明。
使用 pip 指定依赖项
Python Buildpack 支持使用 pip 管理应用依赖项。您的应用依赖项应在 requirements.txt
文件的根目录中声明。
在 requirements.txt
文件中,每个软件包对应一行内容。每行包含软件包名称和(可选)请求的版本。如需了解详情,请参阅 requirements.txt
参考。
下面是一个 requirements.txt
文件示例:
requests==2.20.0 numpy
配置 pip
您可以使用环境变量配置 pip 的行为:
pack build sample-python --builder=gcr.io/buildpacks/builder \
--env PIP_DEFAULT_TIMEOUT='60'
来自 Artifact Registry 的专用依赖项
Artifact Registry Python 代码库可以为您的 Python 函数托管专用依赖项。在 Cloud Build 上构建应用时,Python Buildpack 会自动为 Cloud Build 服务账号生成 Artifact Registry 凭据。您只需在 requirements.txt
中添加 Artifact Registry 网址,而不需要生成其他凭据。例如:
--extra-index-url REPOSITORY_URL
sampleapp
Flask==0.10.1
google-cloud-storage
应用入口点
Python Buildpack 使用 Gunicorn 作为工作负载的默认 WSGI HTTP 服务器。使用 Python Buildpack 构建的应用会使用默认设置启动 gunicorn
进程,类似于运行以下命令:
gunicorn --bind :8080 main:app
自定义应用入口点
您可以使用 Procfile
或环境变量替换 Gunicorn 默认值和入口点默认值,并自定义应用的启动命令。
您可以使用自定义设置在根目录中创建 Procfile
。示例:
web: gunicorn --bind :$PORT --workers 1 --threads 8 --timeout 0 main:app
或者,您也可以将 GOOGLE_ENTRYPOINT
环境变量与 pack
命令结合使用。示例:
pack build sample-python \
--builder gcr.io/buildpacks/builder
--env "GOOGLE_ENTRYPOINT='gunicorn --bind :$PORT main:app'"
环境变量
Python Buildpack 支持使用以下环境变量来自定义容器
PIP_<key>
请参阅 pip 文档。
示例:PIP_DEFAULT_TIMEOUT=60
为 pip
命令设置 --default-timeout=60
。