Firebase App Hosting wykorzystuje Cloud Build do przekształcania kodu źródłowego aplikacji w format kontenera odpowiedni do wdrożenia na platformie Cloud Run.
Proces kompilacji składa się z tych głównych 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 Google Cloud konsoli:

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 przez kolejne etapy 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 kluczy tajnych 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
Jest to 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 pakiety Cloud Native Buildpacks i binarny program lifecycle creator 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 odpowiednich wartości konfiguracji specyficznych dla platformy na standardowy format czytelny dla 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.
Tworzenie zasady czyszczenia
Firebase App Hosting wymusza automatyczne przechowywanie kompilacji i zasady czyszczenia, Zgodnie z tymi zasadami usługaApp Hosting przechowuje udane kompilacje i powiązane z nimiCloud Run wersje z ostatnich 14 dni. Dodatkowo, aby zapewnić możliwość wycofania zmian, App Hosting przechowuje 5 ostatnich udanych kompilacji i wdrożeń niezależnie od ich wieku.
App Hosting nigdy nie usunie ani nie wycofa kompilacji, która jest obecnie uwzględniona w aktywnym podziale ruchu lub jest powiązana z trwającym wdrożeniem.
Gdy starsze kompilacje przekroczą te limity przechowywania, ich stan wewnętrzny zostanie zaktualizowany do EXPIRED. Nie możesz natychmiastowo cofnąć zmian w przypadku EXPIREDkompilacji, a opcja cofnięcia zmian do tych kompilacji zostanie usunięta z konsoli Firebase. Zamiast tego musisz utworzyć nową kompilację kierowaną na to samo źródło (zatwierdzenie w repozytorium Git, kontener w Artifact Registry lub zasobnik Google Cloud Storage) i wdrożyć ją.
Jednym ze sposobów na oszczędzanie zasobów kompilacji jest kontrolowanie częstotliwości wywoływania automatycznych wdrożeń. Zobacz zarządzanie automatycznym wdrażaniem.
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