1. はじめに
こんにちは!株式会社Definerの阪本です!
今回は、Cloud Buildでのコンテナイメージビルドについてご紹介したいと思います。
今回は、Cloud Buildでのコンテナイメージビルドについてご紹介したいと思います。
2. 目的・ユースケース
この記事では、Cloud Buildでコンテナイメージをビルドしたいときに、参考になる情報やプラクティスをまとめています。
3. Cloud Buildとは
まずはCloud Buildについておさらいします。
Cloud BuildはGoogle CloudのCI/CDパイプライン構築サービスです。
似たようなサービスとして、CircleCIやGitHub Actionsなどが挙げられます。
機能的なメリットとしては、Google Cloud公式のサービスなので、認証情報の管理コストやリスクを他サービスと比べ考慮しなくて良いことが挙げられます。
デメリットとしては、他のCI/CDサービスにはありCloud Buildには存在しない機能もいくつか存在します。例えばSlack連携などです。
Cloud BuildはGoogle CloudのCI/CDパイプライン構築サービスです。
似たようなサービスとして、CircleCIやGitHub Actionsなどが挙げられます。
機能的なメリットとしては、Google Cloud公式のサービスなので、認証情報の管理コストやリスクを他サービスと比べ考慮しなくて良いことが挙げられます。
デメリットとしては、他のCI/CDサービスにはありCloud Buildには存在しない機能もいくつか存在します。例えばSlack連携などです。
4. Cloud Buildのセットアップ
それでは、Cloud Buildをセットアップしていきます。
①GitHubとの接続
「Cloud Build」→「トリガー」→「リポジトリの管理」→「リポジトリの接続」
GitHubアカウントにログインし、リポジトリを選択します。
②トリガーの設定
「Cloud Build」→「トリガー」→「トリガーの作成」
トリガーとなるイベントを、「ブランチにPushする」、「新しいタグをPushする」、「pullリクエスト」から選びます。
また、ソースとなるリポジトリとブランチを選択します。
構成は、「Cloud Build構成ファイル」とします。

③cloudbuild.yamlの作成/Push
最後に、Cloud Buildの設定ファイルであるcloudbuild.yamlを作成します。
今回はサンプルとして、Cloud Functionsへのデプロイを指定しました。
GitへPushするとCloud Buildがキックされ、Cloud Functionsへのデプロイが走っていることが確認できました!
①GitHubとの接続
「Cloud Build」→「トリガー」→「リポジトリの管理」→「リポジトリの接続」
GitHubアカウントにログインし、リポジトリを選択します。
②トリガーの設定
「Cloud Build」→「トリガー」→「トリガーの作成」
トリガーとなるイベントを、「ブランチにPushする」、「新しいタグをPushする」、「pullリクエスト」から選びます。
また、ソースとなるリポジトリとブランチを選択します。
構成は、「Cloud Build構成ファイル」とします。

③cloudbuild.yamlの作成/Push
最後に、Cloud Buildの設定ファイルであるcloudbuild.yamlを作成します。
今回はサンプルとして、Cloud Functionsへのデプロイを指定しました。
GitへPushするとCloud Buildがキックされ、Cloud Functionsへのデプロイが走っていることが確認できました!
## cloudbuild.yaml
steps:
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
args:
- gcloud
- functions
- deploy
- cloud-functions-sample
- --region=${リージョン名}
- --source=.
- --trigger-http
- --runtime=python38
5. 引用・参考記事
6. 独自ソリューション「PrismScaler」について
7. お問合せ
本記事では、入門編として有益な情報を無料公開しています。ご相談やお問い合わせは「株式会社Definer」へ。
8. Definerに関して。
・ Definer Incは、ITの上流から下流まで一気通貫のワンストップソリューションをご提供しております。
・ AIやクラウドのITインフラなど、先進的なIT技術のコンサルティングから要件定義 / 設計開発 / 実装、保守運用に至るまでの統合的な支援にコミットしています。
・ DevOpsとCI/CDコンサルティングにより「少ないエンジニアで事業が成長する仕組みづくり」「エンジニアが喜ぶ、採用しやすい環境づくり」「高速なアジャイル開発環境」を実現しています。
・ また、自社プロダクトとしてPrismScalerを展開しております。PrismScalerは、AWS、Azure、GCPなどのマルチクラウド / ITインフラの高品質かつ迅速な、「自動構築」「自動監視」「問題検知」「構成可視化」を実現します。
・ AIやクラウドのITインフラなど、先進的なIT技術のコンサルティングから要件定義 / 設計開発 / 実装、保守運用に至るまでの統合的な支援にコミットしています。
・ DevOpsとCI/CDコンサルティングにより「少ないエンジニアで事業が成長する仕組みづくり」「エンジニアが喜ぶ、採用しやすい環境づくり」「高速なアジャイル開発環境」を実現しています。
・ また、自社プロダクトとしてPrismScalerを展開しております。PrismScalerは、AWS、Azure、GCPなどのマルチクラウド / ITインフラの高品質かつ迅速な、「自動構築」「自動監視」「問題検知」「構成可視化」を実現します。