Buildpack は、環境変数によって言語固有の構成をサポートしています。
Python バージョンの指定
デフォルトでは、Python Runtime 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 が使用されます。
アプリのデプロイ時に Python 3.10 を使用するように Buildpack を構成するには:
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
ファイルには、パッケージごとに 1 行が含まれています。各行にはパッケージ名が含まれます。パッケージ名以外に、リクエストされたバージョンが含まれている場合もあります。詳細については、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 URL のみを含める必要があります。例:
--extra-index-url REPOSITORY_URL
sampleapp
Flask==0.10.1
google-cloud-storage
アプリケーション エントリポイント
Python Buildpack は、ワークロードのデフォルトの WSGI HTTP サーバーとして Gunicorn を使用します。Python Buildpack でビルドされたアプリは、次を実行した場合と同様に、デフォルト設定で gunicorn
プロセスを開始します。
gunicorn --bind :8080 main:app
アプリケーション エントリポイントのカスタマイズ
Gunicorn のデフォルトとエントリポイントのデフォルトをオーバーライドし、Procfile
または環境変数を使用してアプリケーションの起動コマンドをカスタマイズできます。
Procfile
を作成するには、ルート ディレクトリのカスタム設定を使用します。例:
web: gunicorn --bind :$PORT --workers 1 --threads 8 --timeout 0 main:app
また、pack
コマンドで GOOGLE_ENTRYPOINT
環境変数を使用することもできます。例:
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
を設定します。