Firebase App Hosting verwendet Cloud Build, um den Quellcode Ihrer Anwendung in ein containerisiertes Format umzuwandeln, das für die Bereitstellung auf Cloud Run geeignet ist.
Der Build-Prozess umfasst die folgenden Hauptphasen:
Aufnahme: Der Quellcode und die Konfiguration Ihrer Anwendung werden erfasst.
Build: Hiermit werden Abhängigkeiten installiert und Ihre Anwendung erstellt.
Übergabe: Der Produktionscontainer Cloud Run wird fertiggestellt.
Diese drei Schritte entsprechen direkt den Buildschritten 1, 2 und 3, die in Cloud Build in der Google Cloud Console angezeigt werden:
Datenaufnahmephase
In dieser Phase wird die Logik vor dem Erstellen verarbeitet. Es liest, bereinigt und schreibt benutzerdefinierte Umgebungsvariablen. Außerdem werden alle in der apphosting.yaml
-Datei angegebenen Geheimnisse dereferenziert und angepinnt.
Build-Phase
Dies ist der Kern des Build-Prozesses, der für die Generierung eines ausführbaren Container-Images und einer bundle.yaml
-Datei verantwortlich ist, in der Ihre Build-Konfiguration definiert ist.
Dabei werden Cloud Native Buildpacks verwendet, um die Anwendung effizient zu verpacken. Weitere Informationen zur Datei bundle.yaml
finden Sie auf GitHub.
Buildpacks sind dafür verantwortlich, den Quellcode Ihrer Anwendung in produktionsfertige Container-Images umzuwandeln. Firebase App Hosting verkettet mehrere Buildpacks, um den Build-Prozess abzuschließen:
- Laufzeit-Buildpack: Sorgt dafür, dass alle erforderlichen Komponenten zum Ausführen einer einfachen Node.js-Anwendung enthalten und Abhängigkeiten installiert sind.
- Monorepo Buildpack: Konfiguriert nachfolgende Buildpacks für die Verarbeitung verschiedener Monorepo-Szenarien.
Framework-Buildpack: Hiermit wird der richtige Framework-Adapter (z. B. Angular oder Next.js) installiert und nachfolgende Buildpacks werden vorbereitet.
Framework-Adapter sind für die Ausführung des Produktions-Build-Befehls und die Zuordnung aller relevanten frameworkspezifischen Konfigurationswerte in ein Standardformat verantwortlich, das von App Hosting gelesen werden kann.
Package Manager Buildpack: Führt die Installation von Abhängigkeiten aus und erstellt die Anwendung mit npm, yarn oder pnpm.
Output Bundle Buildpack: Hiermit wird der Befehl zum Ausführen definiert und das Ausgabebundle für die Ausführung vorbereitet.
Übergabephase
In dieser letzten Phase werden alle aus dem Quellcode der Anwendung extrahierten Informationen sowie das Build-Container-Image verpackt und an das App Hosting-Backend gesendet. Das App Hosting-Backend verwendet diese Informationen dann, um Cloud Run mit den richtigen Konfigurationen einzurichten.
Weitere Informationen
Der gesamte App Hosting-Build-Prozess ist Open Source.
- Der Buildpack-Code befindet sich im Buildpack-Repository von Google Cloud.
- Der Code für Framework-Adapter befindet sich im Repository „firebase-framework-tools“.
- Weitere Informationen zu Cloud Native Buildpacks und Cloud Build