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 wichtigen Phasen:
Aufnehmen: Erfasst den Quellcode und die Konfiguration Ihrer Anwendung.
Build: Installiert Abhängigkeiten und erstellt Ihre Anwendung.
Übergabe: Schließt den Cloud Run-Container für die Produktion ab.
Diese drei Schritte entsprechen direkt den Build-Schritten 1, 2 und 3, wie sie in der Google Cloud Console in Cloud Build angezeigt werden:
Aufnahmephase
In dieser Phase wird die Logik vor dem Build verarbeitet. Sie liest, bereinigt und schreibt benutzerdefinierte Umgebungsvariablen. Außerdem werden alle in der Datei apphosting.yaml
angegebenen Secrets dereferenziert und angepinnt.
Build-Phase
Dies ist der Kern des Build-Prozesses. Er ist für die Generierung eines ausführbaren Container-Images und einer bundle.yaml
-Datei zuständig, in der Ihre Build-Konfiguration definiert ist.
Zum effizienten Verpacken der Anwendung werden Cloud Native Buildpacks verwendet. 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:
- Runtime Buildpack: Sorgt dafür, 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 die Verarbeitung verschiedener Monorepo-Szenarien.
Framework-Buildpack: Installiert den richtigen Framework-Adapter (z. B. Angular oder Next.js) und bereitet nachfolgende Buildpacks vor.
Framework-Adapter sind dafür zuständig, den Befehl für den Produktions-Build auszuführen und alle relevanten frameworkspezifischen Konfigurationswerte in ein Standardformat zu übertragen, 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.
Übergabephase
In dieser letzten Phase werden alle Informationen, die aus dem Anwendungsquellcode extrahiert wurden, sowie das Build-Container-Image verpackt und an das App Hosting-Back-End 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 Google Cloud-Repository für Buildpacks.
- Der Code für Framework-Adapter befindet sich im firebase-framework-tools-Repository.
- Weitere Informationen zu Cloud Native Buildpacks und Cloud Build