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

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

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

ローカルビルド

ローカルビルドの場合、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. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Cloud Build and Artifact Registry API を有効にします。

    API を有効にする

  5. Google Cloud CLI をインストールします。
  6. gcloud CLI を初期化するには:

    gcloud init
  7. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  8. Google Cloud プロジェクトで課金が有効になっていることを確認します

  9. Cloud Build and Artifact Registry API を有効にします。

    API を有効にする

  10. Google Cloud CLI をインストールします。
  11. gcloud CLI を初期化するには:

    gcloud init
  12. 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 リポジトリに選択した名前がリストに表示されます。

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

  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 リポジトリの名前に置き換えます。