Firebase App Hosting korzysta z Cloud Build, aby przekształcić kod źródłowy aplikacji w format kontenerowy odpowiedni do wdrożenia w Cloud Run.
Proces kompilacji przebiega w tych kluczowych etapach:
ubuntu: inicjowanie obszaru roboczego.
preparer: zbieranie kodu źródłowego i konfiguracji aplikacji.
pre-buildpack: przygotowywanie środowiska pakietu kompilacji.
build: instalowanie zależności i kompilowanie aplikacji.
publisher: finalizowanie kontenera produkcyjnego 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 on obszar roboczy kompilacji, zapewniając prawidłowe ustawienie uprawnień do plików w katalogach używanych przez kolejne kroki 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 obiektów tajnych określonych w pliku apphosting.yaml i przypina je.
Pre-buildpack
Ten krok przygotowuje środowisko do cyklu życia pakietów kompilacji Cloud Native. Obejmuje to uruchomienie shim, który tłumaczy konfiguracje i zmienne środowiskowe przygotowane w poprzednim etapie na format oczekiwany przez narzędzia CNB.
Kompilacja
Jest to główna część procesu kompilacji, która odpowiada za wygenerowanie obrazu kontenera do uruchomienia i pliku bundle.yaml określającego konfigurację kompilacji.
Do wydajnego pakowania aplikacji używa pakietów kompilacji Cloud Native
i binarnego narzędzia do tworzenia cyklu życia
za pomocą
aplikacji. Więcej informacji o pliku bundle.yaml znajdziesz
w GitHub.
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 zakoń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 kompilacji.
Adaptery platformy odpowiadają za uruchamianie polecenia kompilacji produkcyjnej i mapowanie wszystkich odpowiednich wartości konfiguracji specyficznych dla platformy na standardowy format czytelny dla App Hosting.
Package Manager Buildpack: wykonuje instalację zależności i kompiluje aplikację za pomocą npm, yarn lub pnpm.
Output Bundle Buildpack: definiuje polecenie uruchamiania i przygotowuje pakiet wyjściowy do wykonania.
Wydawca
Ten ostatni etap pakuje wszystkie informacje wyodrębnione z kodu źródłowego aplikacji oraz obraz kontenera kompilacji i wysyła je do App Hosting backendu. Backend App Hosting używa tych informacji do skonfigurowania Cloud Run z odpowiednimi ustawieniami.
Zasady czyszczenia kompilacji
Firebase App Hosting stosuje automatyczne zasady przechowywania i czyszczenia kompilacji. Zgodnie z tymi zasadami, App Hosting przechowuje udane kompilacje i powiązane z nimi Cloud Run wersje z ostatnich 14 dni. Dodatkowo, aby zapewnić, że zawsze będziesz mieć kompilację, do której możesz wrócić, App Hosting przechowuje 5 najnowszych udanych kompilacji i wdrożeń niezależnie od ich wieku.
App Hosting nigdy nie usunie ani nie usunie kompilacji, która jest obecnie w aktywnym podziale ruchu lub jest powiązana z wdrożeniem w toku.
Gdy starsze kompilacje przekroczą te limity przechowywania, ich stan wewnętrzny zostanie zaktualizowany do EXPIRED. Nie możesz natychmiastowo przywrócić kompilacji EXPIRED, a opcja przywrócenia tych kompilacji zostanie usunięta z
Firebase konsoli. Zamiast tego musisz utworzyć nową kompilację kierowaną na to samo źródło
(zatwierdzenie git,
kontener w Artifact Registry lub zasobnik Google Cloud Storage) i ją wdrożyć.
Jednym ze sposobów na oszczędzanie zasobów kompilacji jest kontrolowanie częstotliwości wyzwalania automatycznych wdrożeń. Zobacz Zarządzanie automatycznymi wdrożeniami.
Więcej informacji
Cały proces kompilacji App Hosting jest 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 pakietach kompilacji Cloud Native i Cloud Build