このページでは、Cloud Build でコミュニティ提供のビルダーとカスタム ビルダーを使用する方法について説明します。Cloud Build のデベロッパー コミュニティから、タスク実行のために使用できるオープンソースのビルダーが提供されています。実行するタスクに既存のイメージでは提供されない機能が必要な場合は、独自のカスタム イメージをビルドしてビルドステップで使用できます。さまざまな種類のビルダーの詳細については、クラウド ビルダーをご覧ください。
Cloud Build を初めて使用する場合は、最初にクイックスタートとビルド構成の概要をご覧ください。
コミュニティ提供のビルダーの使用
事前にビルドされたイメージは、コミュニティ提供のビルダーでは使用できません。これらのビルダーを Cloud Build 構成ファイルで使用するには、まずイメージをビルドし、プロジェクトの Container 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
に残されたファイルは、他のビルドステップでも使用できます。
カスタム ビルダーは、Cloud Build サービス アカウントがアクセスできる Container 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 の値を置き換えて、カスタム ビルダーをビルドしてプロジェクトの Container Registry に push します。
gcloud builds submit --tag gcr.io/project-id/image-name
ビルドステップの
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" } ] }
次のステップ
- ビルドステップで bash スクリプトを実行する方法を学習する。
- ビルドステップの順序を構成する方法を学習する。
- 基本的なビルド構成ファイルを作成する方法を学習する。