ほとんどの場合、Firebase コンソールから自動ロールアウトまたは手動トリガー ロールアウトを使用することをおすすめします。ただし、よりカスタマイズされたデプロイフローが必要になる場合があります。App Hosting には、カスタム デプロイ用のオプションが複数用意されています。
Firebase CLI を使用してソースからデプロイする
Firebase CLI を使用すると、アプリのソースコードと構成をローカルマシンから Firebase に直接 push できます。これは、他の Firebase デプロイ(セキュリティ ルールや関数など)があり、単一の CLI コマンドでウェブアプリとバックエンド サービスを一緒にデプロイする場合に便利です。
デプロイ時に、App Hosting はソースコードを Google Cloud Storage バケットにアップロードし、Cloud Build でフレームワーク ビルドコマンドを実行して、最終的なアーティファクトを Cloud Run と Cloud CDN にデプロイします。App Hosting は、ローカル ソース デプロイと GitHub デプロイに同じビルドプロセスを使用します。
ローカルソースからアプリをデプロイするには:
- ローカル プロジェクト ディレクトリで
firebase init apphosting
を実行します。 - プロンプトが表示されたら、[既存のプロジェクトを使用] を選択し、選択した Firebase プロジェクトを選択します。
デプロイする新しいバックエンドまたは既存のバックエンドを選択します。この手順では、ローカル ディレクトリの App Hosting デプロイを設定し、アプリを正常にデプロイするために App Hosting が必要とする情報を求めるプロンプトが表示されます。
- デプロイ先のバックエンドの ID
- デプロイ先のリージョン(新しいバックエンドを作成する場合)
- アプリケーション コードのルート ディレクトリへのパス
App Hosting は、デプロイ設定を
firebase.json
に保存します(ファイルが存在しない場合は、ローカル プロジェクトに作成します)。初期化が正常に完了したら、firebase deploy
を実行してソースコードを App Hosting にデプロイできます。
複数のバックエンドに対してローカル ソース デプロイが設定されている場合(つまり、firebase.json
に複数の backendId
エントリがある場合)、firebase deploy
はこれらの各バックエンドにデプロイされます。特定のバックエンドにデプロイするには、firebase deploy --only apphosting:backendId
を使用します。
firebase.json の例
{
"apphosting": [
{
"backendId": "my-backend",
// rootDir specifies the directory containing the app to deploy, but the entire
// parent directory of firebase.json will be zipped and uploaded to ensure that
// dependencies outside of the app directory will be available at build time.
"rootDir": "./my-app",
"ignore": [
"node_modules",
".git",
"firebase-debug.log",
"firebase-debug.*.log",
"functions",
],
},
]
}
Terraform を使用したデプロイ
ビルドプロセスとデプロイされた環境をより詳細に制御する必要がある場合は、Terraform を使用してデプロイできます。Terraform を使用すると、宣言型構成ファイルを使用して App Hosting リソースを定義して管理できます。また、App Hosting がソースコードからビルドするのではなく、独自の事前構築済みコンテナ イメージを App Hosting に直接デプロイすることもできます。
Terraform を初めて使用する場合は、Terraform と Firebase を使ってみるをご覧ください。Terraform に精通している場合は、サンプル構成ファイルやその他の App Hosting リソースを使用して始めることができます。
Firebase Studio を使用してデプロイする
Firebase Studio のアプリ プロトタイピング エージェントでウェブアプリを作成すると、Firebase Studio から Firebase App Hosting に直接公開(デプロイ)できます。App Hosting を使用してアプリを公開するをご覧ください。