Firebase App Hosting wykorzystuje Cloud Build do przekształcania kodu źródłowego aplikacji w format kontenerowy odpowiedni do wdrożenia na platformie Cloud Run.
Proces kompilacji składa się z tych etapów:
ubuntu: inicjowanie obszaru roboczego.
preparer: zbiera kod źródłowy i konfigurację aplikacji.
pre-buildpack: przygotowuje środowisko pakietu kompilacji.
build: instaluje zależności i kompiluje aplikację.
Wydawca: finalizuje produkcję kontenera Cloud Run.
Te 5 kroków odpowiada bezpośrednio krokom kompilacji wyświetlanym w Cloud Build w konsoli Google Cloud:

Inicjowanie obszaru roboczego
Ten etap odpowiada krokowi kompilacji Ubuntu. Inicjuje obszar roboczy kompilacji, zapewniając prawidłowe uprawnienia do plików w katalogach używanych w kolejnych krokach kompilacji.
Preparer
Ten etap odpowiada za obsługę logiki przed kompilacją. Odczytuje, oczyszcza i zapisuje zmienne środowiskowe zdefiniowane przez użytkownika. Usuwa też odwołania do wszystkich tajnych danych określonych w pliku apphosting.yaml i przypina je.
Pre-buildpack
Ten krok przygotowuje środowisko do cyklu życia Cloud Native Buildpacks. Obejmuje to uruchomienie warstwy pośredniej, która tłumaczy konfiguracje i zmienne środowiskowe przygotowane na poprzednim etapie na format oczekiwany przez narzędzia CNB.
Kompilacja
To jest główna część procesu kompilacji, która odpowiada za wygenerowanie obrazu kontenera z możliwością uruchomienia i pliku bundle.yaml określającego konfigurację kompilacji.
Wykorzystuje ona Cloud Native Buildpacks i binarny program do tworzenia cyklu życia
do wydajnego pakowania aplikacji. Więcej informacji o pliku bundle.yaml znajdziesz na GitHubie.
Pakiety kompilacji odpowiadają za przekształcanie kodu źródłowego aplikacji w obrazy kontenerów gotowe do wykorzystania w środowisku produkcyjnym. Firebase App Hosting łączy kilka pakietów kompilacji, aby ukończyć proces kompilacji:
- Runtime Buildpack: zapewnia, że wszystkie niezbędne komponenty do uruchomienia podstawowej aplikacji Node.js są uwzględnione, a zależności są zainstalowane.
- Monorepo Buildpack: konfiguruje kolejne pakiety kompilacji do obsługi różnych scenariuszy monorepo.
Framework Buildpack: instaluje odpowiedni adapter platformy (np. Angular lub Next.js) i przygotowuje kolejne pakiety kompilacyjne.
Adaptery platformy odpowiadają za uruchamianie polecenia kompilacji produkcyjnej i mapowanie wszystkich odpowiednich wartości konfiguracji specyficznych dla platformy na standardowy format odczytywany przez App Hosting.
Pakiet Package Manager Buildpack: wykonuje instalację zależności i kompiluje aplikację za pomocą npm, yarn lub pnpm.
Output Bundle Buildpack: określa polecenie uruchamiania i przygotowuje pakiet wyjściowy do wykonania.
Wydawca
Na tym ostatnim etapie wszystkie informacje wyodrębnione z kodu źródłowego aplikacji oraz obraz kontenera kompilacji są pakowane i wysyłane do App Hosting backendu. App Hosting backend używa tych informacji do skonfigurowania Cloud Run z odpowiednimi ustawieniami.
Więcej informacji
Cały App Hostingproces kompilacji jest dostępny na licencji open source.
- Kod pakietu kompilacji znajduje się w repozytorium pakietów kompilacji Google Cloud.
- Kod adapterów platformy znajduje się w repozytorium firebase-framework-tools.
- Więcej informacji o Cloud Native buildpacks i Cloud Build