このドキュメントでは、プライベート プールでビルドを実行する方法について説明します。プライベート プールを初めて使用する場合は、プライベート プールの概要をご覧ください。
始める前に
プライベート プールの作成と管理の手順を使用してプライベート プールを作成していることを確認してください。
このガイドのコマンドラインの例を使用するには、Google Cloud CLI をインストールして構成します。
同じ Google Cloud プロジェクトで プライベート プールと Cloud Build ビルドを作成できます。また、別々の プロジェクトを使用することもできます。ビルドがプライベート プールとは異なるプロジェクトに存在する場合は、gcloud CLI のデフォルト プロジェクトをビルド元のプロジェクトに設定します。
gcloud config set project BUILD_ORIGIN_PROJECT_ID
IAM の権限
gcloud CLI または Cloud Build API を使用してビルドを実行するには、ビルドをリクエストするユーザーやサービス アカウントに、プライベート プール プロジェクトの WorkerPool ユーザーロールを付与します。
トリガーを使用して自動ビルドを実行するには:
- ビルドを開始するプロジェクトがプライベート プールが存在するプロジェクトと同じである場合、権限を付与する必要はありません。
ビルドを開始するプロジェクトがプライベート プールが存在するプロジェクトと異なる場合は、ビルドが作成されたワーカープール プロジェクトのトリガーで、使用しているサービス アカウントに WorkerPool ユーザーのロールを付与します。
コンソール
コンソールで [IAM] ページを開きます。 Google Cloud
ページの上部にあるプロジェクト セレクタのプルダウン メニューで、プライベート プールを含むプロジェクトを選択します。
[アクセス権を付与] をクリックします。
次のプリンシパルとロールの設定を入力します。
プリンシパルを追加: トリガーで使用しているサービス アカウントのメールアドレスを入力します。
ロールを割り当てる: Cloud Build WorkerPool ユーザーロールを選択します。
[保存] をクリックして、新しい IAM 権限を保存します。
gcloud
トリガー プロジェクトのビルド サービス アカウントを cloudbuild.workerPoolUser ロールを持つワーカープール プロジェクトに追加するには:
gcloud projects add-iam-policy-binding PRIVATEPOOL_PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT \ --role=roles/cloudbuild.workerPoolUser上記のコマンドのプレースホルダ値を次の値に置き換えます。
PRIVATEPOOL_PROJECT_IDは、ビルドを実行するプライベート プールがあるプロジェクトの ID です。SERVICE_ACCOUNTは、ビルドを実行するトリガーで使用しているサービス アカウントのメールアドレスです。
ビルドの実行
プライベート プールを作成した同じ Google Cloud プロジェクトまたは別の Google Cloud プロジェクトからビルドを送信できます。プライベート プールは、ビルド構成ファイルで、または直接 gcloud コマンドで次のように指定できます。
ビルド構成ファイルでプライベート プールを指定するには:
Cloud Build 構成ファイルで、
poolオプションを追加し、ビルドを実行するプライベート プールの完全なリソース名を指定します。YAML
steps: - name: 'bash' args: ['echo', 'I am running in a private pool!'] options: pool: name: 'projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID'JSON
{ "steps": [ { "name": "bash", "args": [ "echo", "I am running in a private pool!" ] } ], "options": { "pool" : { "name" : "projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID" } } }上の構成ファイルのプレースホルダ値を次の値に置き換えます。
PRIVATEPOOL_PROJECT_ID: プライベート プールが配置されている Google Cloud プロジェクト。REGION: プライベート プールを作成したリージョン。PRIVATEPOOL_ID: プライベート プールの作成時に指定した一意のプライベート プール ID。
上で作成したビルド構成ファイルを使用して、
gcloudまたは API またはトリガーを使用してビルドを実行します。インスタンスがオンプレミスでホストされている場合、Cloud Build は、GitHub Enterprise や Bitbucket Server などのいくつかの外部ソースコード管理システムのトリガー機能のサポートを提供します。
gcloud コマンドでプライベート プールを次のように指定します。
プライベート プールは、ビルド構成ファイルではなく gcloud コマンドで指定できます。たとえば、次のビルド構成ファイルがあるとします。
YAML
steps:
- name: 'bash'
args: ['echo', 'I am running in a private pool!']
JSON
{
"steps": [
{
"name": "bash",
"args": [
"echo",
"I am running in a private pool!"
]
}
],
}
次のコマンドは、ビルド構成ファイルを使用してビルドを実行し、このコマンドでワーカープールを指定します。
gcloud builds submit --config=CONFIG_FILE
--worker-pool=projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID
上記のコマンドのプレースホルダ値を次のように置き換えます。
CONFIG_FILE: ビルド構成ファイルへのパス。PRIVATEPOOL_ID: プライベート プールの作成時に指定した一意のプライベート プール ID。PRIVATEPOOL_PROJECT_ID: プライベート プールが配置されている Google Cloud プロジェクト。REGION: プライベート プールを作成したリージョン。
次のステップ
- プライベート プールの作成と管理の方法を確認する。
- プライベート プールで VPC Service Controls を使用する方法を確認する。
- ビルドトリガーを作成および管理する方法を学習する。
- GitHub Enterprise からリポジトリを構築する方法を確認する。
- Bitbucket サーバーからリポジトリを構築する方法を学習する。