このページでは、Cloud Build でコミュニティ提供のビルダーとカスタム ビルダーを使用する方法について説明します。Cloud Build のデベロッパー コミュニティから、タスク実行のために使用できるオープンソースのビルダーが提供されています。実行するタスクに既存のイメージでは提供されない機能が必要な場合は、独自のカスタム イメージをビルドしてビルドステップで使用できます。さまざまな種類のビルダーの詳細については、クラウド ビルダーをご覧ください。
Cloud Build を初めて使用する場合は、最初にクイックスタートとビルド構成の概要をご覧ください。
コミュニティ提供のビルダーの使用
事前にビルドされたイメージは、コミュニティ提供のビルダーでは使用できません。これらのビルダーを Cloud Build 構成ファイルで使用するには、まずイメージをビルドし、プロジェクトの Artifact Registry に push する必要があります。
コミュニティ提供のビルダーを使用するには:
ビルダーをビルドして push します。
プロジェクトのルート ディレクトリに移動します。
cloud-builders-community リポジトリのクローンを作成します。
git clone https://github.com/GoogleCloudPlatform/cloud-builders-community.git使用するビルダー イメージに移動します。ここで、builder-name はビルダーを含むディレクトリです。
cd cloud-builders-community/builder-nameビルダーをプロジェクトに送信します。
gcloud builds submit .プロジェクトのルート ディレクトリに戻ります。
cd ../..ルート ディレクトリからリポジトリを削除します。
rm -rf cloud-builders-community/
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", ... ] ... } ] }
コミュニティ提供のビルダーの使用例については、Firebase にデプロイすると Packer を使用した VM イメージのビルドをご覧ください。
カスタム ビルダーの作成
実行するタスクに公開イメージ、サポート対象のビルダーまたはコミュニティ提供のビルダーで提供されない機能が必要な場合は、独自のイメージをビルドしてビルドステップで使用できます。
カスタム ビルダー イメージを使用する例を次に示します。
- 外部のロケーションからのソースコードまたはパッケージのダウンロード
- 外部ツールチェーンの使用
- 必要なライブラリのキャッシュ
- ソースの事前ビルド(ビルドをイメージにパッケージングする部分のみを受け持つ Cloud Build を使用)
他のビルダーと同様に、カスタム ビルダーは /workspace の下にマウントされたソースで実行され、/workspace の作業ディレクトリで実行されます。特定のビルドステップで /workspace に残されたファイルは、他のビルドステップでも使用できます。
カスタム ビルダーは、ビルド サービス アカウントがアクセスできる Artifact Registry(gcr.io/$PROJECT-NAME/ でホストされています)内のリポジトリに対して push または pull できます。
次の手順は、Dockerfile の例でカスタム ビルダーを作成して使用する方法を示しています。
次のカスタム ビルダー イメージを作成します。
カスタム ビルダーの
Dockerfileを作成します。次のコードは、Dockerfileの例を示しています。FROM alpine RUN apk add curl CMD curl https://httpbin.org/ip -s > myip.txt; echo "*** My IP is: $(cat myip.txt)"project-id と image-name の値を置き換えて、カスタム ビルダーをビルドしてプロジェクトの Artifact Registry に push します。
gcloud builds submit --tag gcr.io/project-id/image-name
Cloud Build でカスタム ビルダー イメージを使用するには、ビルドステップの
nameフィールドでビルダーを指定します。YAML
steps: - name: 'gcr.io/project-id/image-name' id: Determine IP of this build workerJSON
{ "steps": [ { "name": "gcr.io/project-id/image-name", "id": "Determine IP of this build worker" } ] }
次のステップ
- ビルドステップで bash スクリプトを実行する方法を学習する。
- ビルドステップの順序を構成する方法を学習する。
- 基本的なビルド構成ファイルを作成する方法を学習する。