このドキュメントでは、プライベート プールでビルドを実行する方法について説明します。プライベート プールを初めて使用する場合は、プライベート プールの概要をご覧ください。
始める前に
プライベート プールの作成と管理の手順を使用してプライベート プールを作成していることを確認してください。
このガイドのコマンドラインの例を使用するには、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 ユーザーのロールを付与します。
コンソール
Google Cloud コンソールで [IAM] ページを開きます。
ページ上部にあるプロジェクト セレクタのプルダウン メニューで、プライベート プールを含むプロジェクトを選択します。
[アクセス権を付与] をクリックします。
次のプリンシパルとロールの設定を入力します。
プリンシパルを追加する: トリガーで使用しているサービス アカウントのメールアドレスを入力します。
ロールを割り当てる: 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 サーバーからリポジトリを構築する方法を学習する。