コミュニティ提供のビルダーとカスタム ビルダーの使用

このページでは、Cloud Build でコミュニティ提供のビルダーとカスタム ビルダーを使用する方法について説明します。Cloud Build のデベロッパー コミュニティから、タスク実行のために使用できるオープンソースのビルダーが提供されています。実行するタスクに既存のイメージでは提供されない機能が必要な場合は、独自のカスタム イメージをビルドしてビルドステップで使用できます。さまざまな種類のビルダーの詳細については、クラウド ビルダーをご覧ください。

Cloud Build を初めて使用する場合は、最初にクイックスタートビルド構成の概要をご覧ください。

コミュニティ提供のビルダーの使用

事前にビルドされたイメージは、コミュニティ提供のビルダーでは使用できません。これらのビルダーを Cloud Build 構成ファイルで使用するには、まずイメージをビルドし、プロジェクトの Container Registry に push する必要があります。

コミュニティ提供のビルダーを使用するには:

  1. ビルダーをビルドして push します。

    1. プロジェクトのルート ディレクトリに移動します。

    2. cloud-builders-community リポジトリのクローンを作成します。

      git clone https://github.com/GoogleCloudPlatform/cloud-builders-community.git 
    3. 使用するビルダー イメージに移動します。ここで、builder-name はビルダーを含むディレクトリです。

      cd cloud-builders-community/builder-name 
    4. ビルダーをプロジェクトに送信します。

      gcloud builds submit . 
    5. プロジェクトのルート ディレクトリに戻ります。

      cd ../.. 
    6. ルート ディレクトリからリポジトリを削除します。

      rm -rf cloud-builders-community/ 
  2. Cloud Build 構成ファイルで、ビルドステップでビルダーを使用します。

    YAML

    steps: - name: 'gcr.io/project-id/builder-name'   args: ['arg1', 'arg2', ...] ... 

    JSON

    {   "steps": [   {     "name": "gcr.io/project-id/builder-name",     "args": [       "arg1",       "arg2",       ...     ]     ...   }   ] } 
  3. ビルド構成ファイルを使用して手動でビルドを開始するか、トリガーでビルドします。

コミュニティ提供のビルダーの使用例については、Firebase にデプロイするPacker を使用した VM イメージのビルドをご覧ください。

カスタム ビルダーの作成

実行するタスクに公開イメージ、サポート対象のビルダーまたはコミュニティ提供のビルダーで提供されない機能が必要な場合は、独自のイメージをビルドしてビルドステップで使用できます。

カスタム ビルダー イメージを使用する例を次に示します。

  • 外部のロケーションからのソースコードまたはパッケージのダウンロード
  • 外部ツールチェーンの使用
  • 必要なライブラリのキャッシュ
  • ソースの事前ビルド(ビルドをイメージにパッケージングする部分のみを受け持つ Cloud Build を使用)

他のビルダーと同様に、カスタム ビルダーは /workspace の下にマウントされたソースで実行され、/workspace の作業ディレクトリで実行されます。特定のビルドステップで /workspace に残されたファイルは、他のビルドステップでも使用できます。

カスタム ビルダーは、ビルド サービス アカウントがアクセスできる Container Registrygcr.io/$PROJECT-NAME/ でホストされています)内のリポジトリに対して push または pull できます。

次の手順は、Dockerfile の例でカスタム ビルダーを作成して使用する方法を示しています。

  1. 次のカスタム ビルダー イメージを作成します。

    1. カスタム ビルダーの Dockerfile を作成します。次のコードは、Dockerfile の例を示しています。

        FROM alpine   RUN apk add curl   CMD curl https://httpbin.org/ip -s > myip.txt; echo "*** My IP is: $(cat myip.txt)" 
    2. project-idimage-name の値を置き換えて、カスタム ビルダーをビルドしてプロジェクトの Container Registry に push します。

        gcloud builds submit --tag gcr.io/project-id/image-name 
  2. ビルドステップの name フィールドでビルダーを指定して、Cloud Build でカスタム ビルダー イメージを使用します。

    YAML

        steps:     - name: 'gcr.io/project-id/image-name'       id: Determine IP of this build worker 

    JSON

        {       "steps": [       {         "name": "gcr.io/project-id/image-name",         "id": "Determine IP of this build worker"       }       ]     } 
  3. ビルド構成ファイルを使用して手動でビルドを開始するか、トリガーでビルドします。

次のステップ