App Hosting のビルドプロセス

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

ビルドプロセスは、次の主要な段階を経て行われます。

  1. ubuntu: ワークスペースの初期化。

  2. preparer: アプリケーションのソースコードと構成を収集します。

  3. pre-buildpack: Buildpack 環境を準備します。

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

  5. publisher: 本番環境の Cloud Run コンテナを確定します。

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

Cloud Build ステップの Google Cloud コンソール ビューのスクリーン キャプチャ

ワークスペースの初期化

このステージは、ubuntu ビルドステップに対応しています。 ビルド ワークスペースを初期化し、後続のビルドステップで使用されるディレクトリに適切なファイル権限が設定されるようにします。

作成ツール

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

ビルドパック前

このステップでは、Cloud Native Buildpacks ライフサイクル の環境を準備します。これには、前のステージで準備した構成と環境変数を CNB ツールで想定される形式に変換するシムの実行が含まれます。

ビルド

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

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

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

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

  4. パッケージ マネージャー Buildpack: 依存関係のインストールを実行し、 npm、yarn、pnpm を使用してアプリをビルドします。

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

パブリッシャー

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

詳細

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