ビルドを構成するための環境変数を設定する

コンテナ イメージのビルド中に設定される環境変数を構成できます。

ビルドイメージと実行イメージを拡張して、コンテナ イメージをカスタマイズすることもできます。

ローカルビルド

ローカルビルドの場合、Pack CLI と Docker がインストールされている必要があります。

始める前に

  1. Docker Community Edition(CE)をワークステーションにインストールします。pack は Docker を OCI イメージ ビルダーとして使用します。
  2. Pack CLI をインストールします。
  3. GitHub からサンプル アプリケーションを取得するために Git ソース管理ツールをインストールします。

環境変数を設定する

ローカルビルドの環境変数を設定するには、各環境変数の pack コマンドに --env フラグを追加します。

ランタイムでサポートされている環境変数を 1 つ以上使用できます。

pack build SERVICE_NAME \
    --env ENVIRONMENT_VARIABLE

次のように置き換えます。

  • SERVICE_NAME は、アプリケーションまたは関数のサービスの名前に置き換えます。
  • ENVIRONMENT_VARIABLE は、ビルド時に設定する環境変数に置き換えます。

コンテナ イメージで GOOGLE_ENTRYPOINT="gunicorn -p :8080 main:app" 環境変数を設定するには、次のコマンドを実行します。

pack build my-app \
    --builder gcr.io/buildpacks/builder:v1 \
    --env GOOGLE_ENTRYPOINT="gunicorn -p :8080 main:app"
    --env MY-LOCAL-ENV-VARIABLE

リモートビルド

リモートビルドの環境変数を設定するには、project.toml プロジェクト記述子を使用します。project.toml プロジェクト記述子は、コンテナ イメージのビルド時に Cloud Build によって使用されます。

始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Build and Artifact Registry APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  7. To initialize the gcloud CLI, run the following command:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  9. Make sure that billing is enabled for your Google Cloud project.

  10. Enable the Cloud Build and Artifact Registry APIs.

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  13. To initialize the gcloud CLI, run the following command:

    gcloud init
  14. 使用する Google Cloud プロジェクトがコンテナ イメージ リポジトリにアクセスできることを確認します。

    Artifact Registry の Docker リポジトリへのアクセスを構成する手順は次のとおりです。

    1. 使用する Google Cloud プロジェクトと同じ場所に Docker リポジトリを新規作成します。
      gcloud artifacts repositories create REPO_NAME \
      --repository-format=docker \
      --location=REGION --description="DESCRIPTION"
      次のように置き換えます。
      • REPO_NAME は、Docker リポジトリに選択した名前に置き換えます。
      • REGION は、使用する Google Cloud プロジェクトの場所、またはそれに最も近い場所に置き換えます。
      • DESCRIPTION は選択した説明に置き換えます。

      たとえば、「Docker repository」という説明を使用して us-west2docker リポジトリを作成するには、次のコマンドを実行します。

      gcloud artifacts repositories create buildpacks-docker-repo --repository-format=docker \
      --location=us-west2 --description="Docker repository"
    2. リポジトリが作成されたことを確認します。
      gcloud artifacts repositories list

      Docker リポジトリに選択した名前がリストに表示されます。

  15. 省略可: サンプル アプリケーションをダウンロードする

    1. ローカルマシンにサンプル リポジトリのクローンを作成します。
      git clone https://github.com/GoogleCloudPlatform/buildpack-samples.git
    2. アプリケーションのサンプルコードが含まれているディレクトリに移動します。

      Go

      cd buildpack-samples/sample-go

      Java

      cd buildpack-samples/sample-java-gradle

      Node.js

      cd buildpack-samples/sample-node

      PHP

      cd buildpack-samples/sample-php

      Python

      cd buildpack-samples/sample-python

      Ruby

      cd buildpack-samples/sample-ruby

      .NET

      cd buildpack-samples/sample-dotnet

    環境変数を使用してアプリケーションをビルドする

    1. サービスのルート ディレクトリで project.toml プロジェクト記述子を作成または更新して、[[build.env]] セクションとサポートされている環境変数のいずれかを含めます。
      [[build.env]]
          name = "ENVIRONMENT_VARIABLE_NAME"
          value = "ENVIRONMENT_VARIABLE_VALUE"

      次のように置き換えます。

      • ENVIRONMENT_VARIABLE_NAME は、サポートされている環境変数の名前に置き換えます。
      • ENVIRONMENT_VARIABLE_VALUE は、指定した環境変数に対応する値に置き換えます。

      [[build.env]]
          name = "GOOGLE_ENTRYPOINT"
          value = "gunicorn -p :8080 main:app"
    2. gcloud を使用して、アプリケーションのソースコードを Cloud Build に送信します。
      gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/IMAGE_NAME

      次のように置き換えます。

      • LOCATION は、コンテナ リポジトリのリージョン名に置き換えます。例: us-west2-docker.pkg.dev
      • PROJECT_ID は、使用する Google Cloud プロジェクトの ID に置き換えます。
      • REPO_NAME は Docker リポジトリの名前に置き換えます。
      • IMAGE_NAME は、コンテナ イメージの名前に置き換えます。

      : サンプルアプリをダウンロードした場合は、対応するコマンドを実行します。

      Go

      gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-go

      Java

      gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-java-gradle

      Node.js

      gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-node

      PHP

      gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-php

      Python

      gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-python

      Ruby

      gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-ruby

      .NET

      gcloud builds submit --pack image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/sample-dotnet
    3. サンプル アプリケーションが REPO_NAME に正常に公開されたことを確認します。
      gcloud artifacts docker images list LOCATION-docker.pkg.dev/project-id/REPO_NAME

      次のように置き換えます。

      • LOCATION は、コンテナ リポジトリのリージョン名に置き換えます。例: us-west2-docker.pkg.dev
      • PROJECT_ID は、使用する Google Cloud プロジェクトの ID に置き換えます。
      • REPO_NAME は Docker リポジトリの名前に置き換えます。