Firebase App Hosting verwendet Cloud Build, um den Quellcode Ihrer Anwendung in ein Containerformat umzuwandeln, das für die Bereitstellung in Cloud Run geeignet ist.
Der Build-Prozess umfasst die folgenden Hauptphasen:
ubuntu: Arbeitsbereich initialisieren
preparer: Anwendungsquellcode und -konfiguration erfassen
pre-buildpack: Buildpack-Umgebung vorbereiten
build: Abhängigkeiten installieren und Anwendung erstellen
publisher: Produktions-Cloud Run Container fertigstellen
Diese fünf Schritte entsprechen direkt den Build-Schritten, die in Cloud Build in der Google Cloud Konsole angezeigt werden:

Arbeitsbereich initialisieren
Diese Phase entspricht dem Build-Schritt „ubuntu“. Dabei wird der Build-Arbeitsbereich initialisiert und die richtigen Dateiberechtigungen für die Verzeichnisse festgelegt, die von den nachfolgenden Build-Schritten verwendet werden.
Vorbereiter
Diese Phase ist für die Verarbeitung der Logik vor dem Build zuständig. Dabei werden nutzerdefinierte Umgebungsvariablen gelesen, bereinigt und geschrieben. Außerdem werden alle in der Datei apphosting.yaml angegebenen Secrets dereferenziert und angepinnt.
Pre-buildpack
In diesem Schritt wird die Umgebung für den Lebenszyklus von Cloud Native Buildpacks vorbereitet. Dazu wird ein Shim ausgeführt, der die in der vorherigen Phase vorbereiteten Konfigurationen und Umgebungsvariablen in das von den CNB-Tools erwartete Format übersetzt.
Build
Dies ist der Kern des Build-Prozesses. Hier werden ein ausführbares Container-Image und eine bundle.yaml-Datei mit der Build-Konfiguration generiert.
Dabei werden die Cloud Native Buildpacks
und die Binärdatei des Lebenszyklus-Creators
verwendet, um die
Anwendung effizient zu packen. Weitere Informationen zur Datei bundle.yaml finden Sie
auf GitHub.
Buildpacks sind dafür zuständig, den Quellcode Ihrer Anwendung in produktionsfertige Container-Images umzuwandeln. Firebase App Hosting verknüpft mehrere Buildpacks, um den Build-Prozess abzuschließen:
- Runtime Buildpack: Stellt sicher, dass alle erforderlichen Komponenten zum Ausführen einer einfachen Node.js-Anwendung enthalten sind und Abhängigkeiten installiert werden.
- Monorepo Buildpack: Konfiguriert nachfolgende Buildpacks für verschiedene Monorepo-Szenarien.
Framework Buildpack: Installiert den richtigen Framework-Adapter (z. B. Angular oder Next.js) und bereitet nachfolgende Buildpacks vor.
Framework-Adapter führen den produktionsfertigen Build Befehl aus und ordnen alle relevanten frameworkspezifischen Konfigurationswerte einem Standardformat zu, das von App Hosting gelesen werden kann.
Package Manager Buildpack: Führt die Installation von Abhängigkeiten aus und erstellt die App mit npm, yarn oder pnpm.
Output Bundle Buildpack: Definiert den Ausführungsbefehl und bereitet das Ausgabebundle für die Ausführung vor.
Publisher
In dieser letzten Phase werden alle aus dem Anwendungs quellcode extrahierten Informationen sowie das Build-Container-Image verpackt und an das App Hosting Back-End gesendet. Das App Hosting Back-End verwendet diese Informationen dann, um Cloud Run mit den entsprechenden Konfigurationen einzurichten.
Weitere Informationen
Der gesamte App Hosting Build-Prozess ist Open Source.
- Der Buildpack-Code befindet sich in dem Google Cloud-Buildpacks-Repository.
- Der Code für Framework-Adapter befindet sich im Repository firebase-framework-tools.
- Weitere Informationen zu Cloud Native Buildpacks und Cloud Build