Cloud Build を使用してビルドと Knative serving へのデプロイを自動化するには、Cloud Build トリガーを使用します。これにより、新しい commit が Git リポジトリの特定のブランチに push されると自動的にコードがビルドされデプロイされるようになります。
Cloud Build トリガーを使用してコンテナをビルドすると、Knative serving へのデプロイ後に、サービスの Google Cloud コンソールにソース リポジトリ情報が表示されます。
始める前に
- Git リポジトリに
Dockerfile
が含まれているか、コードベースが Google Cloud の Buildpack でサポートされているいずれかの言語(Go、Node.js、Python、Java、NET Core)である必要があります。 -
Enable the Cloud Build and Cloud Source Repositories APIs.
Knative serving ユーザー インターフェースから継続的デプロイを設定する
この手順は、新しいサービスまたは既存のサービスのどちらで継続的デプロイを設定するかによって若干異なります。該当するタブをクリックして詳細をご覧ください。
新しいサービス
Google Cloud コンソールで Knative serving に移動します。
[サービスを作成] をクリックします。
[サービスの設定] に設定を入力します。
[次へ] をクリックします。
[ソース リポジトリから新しいリビジョンを継続的にデプロイする] を選択します。
[Cloud Build の設定] をクリックします。
プロバイダとリポジトリを選択します。
- GitHub - まだ認証されていない場合は、[認証] をクリックして画面の指示に従います。デフォルトでは、リポジトリの接続は Cloud Build GitHub アプリから行われますが、GitHub リポジトリを Cloud Source Repositories にミラーリングすることもできます。その場合は、[詳細オプション] をクリックして、[Cloud Source Repositories を使用して GitHub リポジトリをミラーリングする] をオンにします。詳細
- Bitbucket - まだ認証されていない場合は、[認証] をクリックして画面の指示に従います。
- Cloud Source Repositories
[次へ] をクリックします。
[ビルド構成] ステップのオプションを入力します。
- ブランチ - トリガーの実行時に使用するソースを指定します。ここには正規表現を含めることができます。一致したブランチが自動的に検証され、入力の下に示されます。なお、ブランチが 1 つだけ一致した場合、作成後にトリガーが自動的に実行されます。
ビルドタイプ
Docker を使用してリポジトリを作成し、そこに Dockerfile が含まれている場合は、[Dockerfile] を選択します。[ソースの場所] は、Dockerfile の場所と名前を示します。このディレクトリが Docker ビルド コンテキストとして使用されます。すべてのパスは、現在のディレクトリを基準とした相対パスにする必要があります。
それ以外の場合は、[Google Cloud Buildpacks] を選択します。Buildpack コンテキストを使用してディレクトリを指定して、サーバーを起動するコマンドを入力します(オプションでエントリポイントを指定することもできます)。例: Python の場合は
gunicorn -p :8080 main:app
、Java の場合はjava -jar target/myjar.jar
と入力します。デフォルトの動作を使用する場合は空白のままにします。
[保存] をクリックします。
選択した設定を確認します。
[作成] をクリックします。
[サービスの詳細] ページにリダイレクトされます。このページで、継続的デプロイの設定の進捗状況を追跡できます。
すべてのステップが完了したら、追加のオプションを確認します。
- [継続的デプロイを編集] ボタン。
- ビルド履歴。
- [リビジョンの詳細] セクションに含まれるソースの詳細。
既存のサービス
Google Cloud コンソールで Knative serving に移動します。
サービスリストでサービスを見つけてクリックします。
[継続的デプロイの設定] をクリックします。
プロバイダとリポジトリを選択します。
- GitHub - まだ認証されていない場合は、[認証] をクリックして画面の指示に従います。デフォルトでは、リポジトリの接続は Cloud Build GitHub アプリから行われますが、GitHub リポジトリを Cloud Source Repositories にミラーリングすることもできます。その場合は、[詳細オプション] をクリックして、[Cloud Source Repositories を使用して GitHub リポジトリをミラーリングする] をオンにします。詳細
- Bitbucket - まだ認証されていない場合は、[認証] をクリックして画面の指示に従います。
- Cloud Source Repositories
[次へ] をクリックします。
[ビルド構成] ステップのオプションを入力します。
- ブランチ - トリガーの実行時に使用するソースを指定します。ここには正規表現を含めることができます。一致したブランチが自動的に検証され、入力の下に示されます。なお、ブランチが 1 つだけ一致した場合、作成後にトリガーが自動的に実行されます。
ビルドタイプ
Docker を使用してリポジトリを作成し、そこに Dockerfile が含まれている場合は、[Dockerfile] を選択します。[ソースの場所] は、Dockerfile の場所と名前を示します。このディレクトリが Docker ビルド コンテキストとして使用されます。すべてのパスは、現在のディレクトリを基準とした相対パスにする必要があります。
それ以外の場合は、[Google Cloud Buildpacks] を選択します。Buildpack コンテキストを使用してディレクトリを指定して、サーバーを起動するコマンドを入力します(オプションでエントリポイントを指定することもできます)。例: Python の場合は
gunicorn -p :8080 main:app
、Java の場合はjava -jar target/myjar.jar
と入力します。デフォルトの動作を使用する場合は空白のままにします。
[保存] をクリックします。
ページが再読み込みされて、継続的デプロイの設定の進行状況が表示されます。
すべてのステップが完了したら、追加のオプションを確認します。
- [継続的デプロイを編集] ボタン。
- ビルド履歴。
- [リビジョンの詳細] セクションに含まれるソースの詳細。
継続的デプロイを手動で設定する
UI ではなく手動で行う必要がある場合は、継続的デプロイを手動で設定するをご覧ください。
既存の Cloud Build トリガーを Knative serving サービスに関連付ける
既存の Cloud Build トリガーがある場合は、[サービスの詳細] ページでそのトリガーをサービスに関連付けて、Google Cloud コンソールの機能([継続的デプロイを編集] ボタンと [ビルド履歴] グラフ)を利用できます。
それには、キーとして gcb-trigger-id を使用し、値として Cloud Build トリガーの(トリガー名ではなく)固有識別子を設定したラベルを追加する必要があります。ラベルの設定方法については、こちらの手順をご覧ください。