このページでは、Cloud Build を使用して Firebase にアプリケーションをデプロイする方法について説明します。Cloud Build を初めて使用する場合は、最初にクイックスタートとビルド構成の概要をご覧ください。
始める前に
-
Enable the Cloud Build, Firebase, and Resource Manager APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.
このページで
gcloud
コマンドを実行するには、Google Cloud CLI をインストールします。firebase.json
を含むアプリケーションのソースコードを保持しておきます。ソースコードは、Cloud Source Repositories、GitHub、Bitbucket などのリポジトリに保存する必要があります。Firebase にデプロイするプロジェクトがまだない場合は、Firebase をインストールして初期化し、デフォルト プロジェクトを作成できます。
必要な IAM 権限
Google Cloud コンソールで [IAM] ページを開きます。
プロジェクトを選択し、[開く] をクリックします。
権限の表で、ビルドに使用しているサービス アカウントのメールアドレスを見つけて、鉛筆アイコンをクリックします。
サービス アカウントに
Cloud Build Service Account
(roles/cloudbuild.builds.builder
)、Firebase Admin
(roles/firebase.admin
)、API Keys Admin
(roles/serviceusage.apiKeysAdmin
)のロールを追加します。[保存] をクリックします。
firebase
Docker イメージの使用
Cloud Build には、Cloud Build で firebase
コマンドを呼び出すために使用できるビルダー イメージが用意されています。Cloud Build 構成ファイルでこのビルダーを使用するには、firebase
ビルドステップを使用して Firebase にデプロイします。
cloudbuild.yaml
またはcloudbuild.json
という名前のビルド構成ファイルを作成します。ここで、PROJECT_ID はGoogle Cloud プロジェクト ID、FIREBASE_PROJECT_ID は Firebase プロジェクト ID です。YAML
steps: - name: "us-docker.pkg.dev/firebase-cli/us/firebase" args: ['deploy', '--project=FIREBASE_PROJECT_ID', '--only=hosting'] ## Or, target a specific version of firebase-tools - name: "us-docker.pkg.dev/firebase-cli/us/firebase":x.y.z args: ['deploy', '--project=FIREBASE_PROJECT_ID', '--only=hosting']
JSON
{ "steps": [ { "name": "us-docker.pkg.dev/firebase-cli/us/firebase", "args": [ "deploy", "--project", "FIREBASE_PROJECT_ID", "--only", "hosting" ] } ] }
name: "us-docker.pkg.dev/firebase-cli/us/firebase":x.y.z
を使用して、firebase-tools
の特定のバージョンを選択できます。ビルド構成ファイルを使用してビルドを開始します。
gcloud builds submit --region=REGION --config CONFIG_FILE_PATH SOURCE_DIRECTORY
ここで
- REGION は、サポートされているビルド リージョンの一つです。
- CONFIG_FILE_PATH は、ビルド構成ファイルへのパスです。
- SOURCE_DIRECTORY は、ソースコードのパスまたは URL です。
継続的デプロイ
Cloud Build トリガーを作成すると、ソフトウェアの Firebase へのデプロイを自動化できます。トリガーを構成すると、ソースコードを更新するたびにイメージをビルドしてデプロイできます。
Firebase へのデプロイを自動化するには:
リポジトリに、
firebase deploy
コマンドを呼び出す手順を含むビルド構成ファイルを追加します。ここで、PROJECT_ID は Google Cloud プロジェクトの ID です。YAML
steps: - name: us-docker.pkg.dev/firebase-cli/us/firebase args: ['deploy', '--project=PROJECT_ID', '--only=hosting']
JSON
{ "steps": [ { "name": "us-docker.pkg.dev/firebase-cli/us/firebase", "args": [ "deploy", "--project", "PROJECT_ID", "--only", "hosting" ] } ] }
前のステップで作成したビルド構成ファイルを使用して、トリガーを作成します。
Google Cloud コンソールで [トリガー] ページを開きます。
ページの上部にあるプロジェクト セレクタのプルダウン メニューからプロジェクトを選択します。
[開く] をクリックします。
[トリガーを作成] をクリックします。
[トリガーの作成] ページで、次の設定を入力します。
トリガーの名前を入力します。
トリガーを開始するリポジトリ イベントを選択します。
ソースコードとビルド構成ファイルを格納するリポジトリを選択します。
トリガーを開始するブランチまたはタグ名を正規表現で指定します。
構成: 以前に作成したビルド構成ファイルを選択します。
[作成] をクリックして、ビルドトリガーを保存します。
リポジトリに新しいコードを push するたびに、ビルドが自動的に開始され、Firebase にデプロイされます。
Cloud Build トリガーの作成方法については、ビルドトリガーの作成と管理をご覧ください。
サンプルコード
Cloud Build を使用して Firebase にデプロイするコードサンプルを表示するには、deploy-firebase-example に移動します。
次のステップ
- Compute Engine で Blue/Green デプロイを実行する方法を学習する。
- Cloud Run にデプロイする方法を学習する
- GKE にデプロイする方法を学習する
- Cloud Run functions にデプロイする方法を学習する
- App Engine にデプロイする方法を学習する
- ビルドエラーをトラブルシューティングする方法について学習する。