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
環境變數,系統會使用 Python 的最新 LTS 版本。
如要設定 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 建構包會自動為 Cloud Build 服務帳戶產生 Artifact Registry 憑證。您只需在 requirements.txt
中加入 Artifact Registry 網址,無須產生其他憑證。例如:
--extra-index-url REPOSITORY_URL
sampleapp
Flask==0.10.1
google-cloud-storage
應用程式進入點
Python 建構包會使用 Gunicorn 做為工作負載的預設 WSGI HTTP 伺服器。使用 Python 建構包建構的應用程式會以預設設定啟動 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
。