LoginSignup
7
2

[GCP][CI/CD]Cloud Buildを使ってGitリモートリポジトリからCloud Storageへ自動デプロイ

Last updated at Posted at 2020-12-02

Advent calendar3日目です🎉
引き続きGCPの話です。
パーソンリンクではkiberaというツールを使って社内で技術系の知見を共有しています。
そこで投稿したものを外部にも公表します🌞

本題

Cloud Storageに置いてある静的ページに対して、Cloud BuildでGitリモートリポジトリ(ここではBitbucket)へのpushをトリガーに自動デプロイするまでの設定手順です。

Untitled Diagram.png

前提条件

以下は行っている前提で書きます。

  • GCPアカウント作成
  • GCPプロジェクト作成
  • GCPアカウントの決済情報登録
  • Gitリポジトリ作成

Cloud Storageの作成

ホーム画面 > メニュー > Storage

  1. 「バケットを作成」をクリック
  2. 名前、リージョン(asia-northeast1(東京))、ストレージクラス(Standerd)、アクセス制御(均一)を設定。
  3. 「作成」をクリック

Cloud Builder トリガーの作成

ホーム画面 > メニュー > Cloud Builder

  1. 初期状態だとAPIの画面に飛ばされるので「有効にする」をクリック
  2. トリガー > 「トリガーを作成」をクリック
  3. トリガー名、イベント(ブランチにpushする)、ソース(新しいリポジトリに接続>Bitbucket>リポジトリ選択)、ビルド構成(Cloud Build構成ファイル)を設定。
  4. 「作成」をクリック

Cloud Build 構成ファイルの作成

  1. プロジェクトのルートディレクトリにcloudbuild.yamlを作成する
  2. cloudbuild.yamlの内容に以下を記載する
cloudbuild.yaml
steps:
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
  args: ['gsutil', 'rsync', '-d', '-r', '.', 'gs://STORAGE_NAME/']

書き方は一般的なCI設定で書くのと同じような感じです。
nameフィールドでコンテナイメージを指定し、argsフィールドでコマンドの引数をリストにして指定します。
以下は構成ファイルの公式ドキュメントです。
ビルド構成の概要  |  Cloud Build のドキュメント  |  Google Cloud

gsutilはGoogle Cloud Storage (GCS) を操作するためのコマンドラインツールのことです。
rsyncコマンドは2つのバケットやディレクトリの内容を同期するためのコマンドです。
参考:gsutil rsync についての簡単なメモ | Yucchiy's Note

STORAGE_NAMEには最初の手順で作成したストレージの名前を記載します。

自動デプロイ実行

上記ファイルをコミットしてpushします。
Cloud Builderの履歴でログを確認し、成功になっていることを確認します。
スクリーンショット 2020-11-25 11.55.53.png

Cloud Storage上でも、ファイルがアップロードされていることが確認できました。
スクリーンショット 2020-11-25 11.55.22.png

参考

Cloud Build を使って静的ページを Cloud Storage にデプロイする

7
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2