App Hosting のビルドプロセス

Firebase App HostingCloud Build を使用して、アプリケーションのソースコードを Cloud Run へのデプロイに適したコンテナ化された形式に変換します。

ビルドプロセスは、次の主要なステージで実行されます。

  1. 取り込み: アプリケーションのソースコードと構成を収集します。

  2. ビルド: 依存関係をインストールしてアプリケーションをビルドします。

  3. ハンドオフ: 本番環境の Cloud Run コンテナを確定します。

これらの 3 つのステップは、Google Cloud コンソールの Cloud Build に表示されるビルドステップ 1、2、3 に直接対応しています。

Cloud Build ステップの Google Cloud コンソール ビューのスクリーンショット

取り込みステージ

このステージは、ビルド前のロジックを処理します。ユーザー定義の環境変数の読み取り、サニタイズ、書き込みを行います。また、apphosting.yaml ファイルで指定されたシークレットの参照を解除してピン留めします。

ビルドステージ

これはビルドプロセスのコアであり、実行可能なコンテナ イメージと、ビルド構成を定義する bundle.yaml ファイルを生成します。Cloud Native Buildpack を使用して、アプリケーションを効率的にパッケージ化します。bundle.yaml ファイルの詳細については、github をご覧ください。

Buildpack は、アプリケーションのソースコードを本番環境対応のコンテナ イメージに変換します。Firebase App Hosting は複数の Buildpack を連結してビルドプロセスを完了します。

  1. ランタイム Buildpack: 基本的な Node.js アプリケーションの実行に必要なすべてのコンポーネントが含まれ、依存関係がインストールされます。
  2. Monorepo Buildpack: さまざまな monorepo シナリオを処理するように後続の Buildpack を構成します。
  3. フレームワーク Buildpack: 適切なフレームワーク アダプタ(Angular や Next.js など)をインストールし、後続の Buildpack を準備します。

    フレームワーク アダプターは、本番環境向けのビルドコマンドを実行し、関連するフレームワーク固有の構成値を App Hosting で読み取れる標準形式にマッピングします。

  4. Package Manager Buildpack: 依存関係のインストールを実行し、npm、yarn、または pnpm を使用してアプリをビルドします。

  5. 出力バンドル Buildpack: 実行コマンドを定義し、出力バンドルを実行用に準備します。

引き継ぎステージ

この最後のステージでは、アプリケーションのソースコードから抽出されたすべての情報とビルド コンテナ イメージをパッケージ化して、App Hosting バックエンドに送信します。App Hosting バックエンドは、この情報を使用して、適切な構成で Cloud Run を設定します。

詳細

App Hosting のビルドプロセス全体はオープンソースです。