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:
Przetwarzanie: zbiera kod źródłowy i konfigurację aplikacji.
Kompilacja: instaluje zależności i kompiluje aplikację.
Przekazanie: finalizuje kontener Cloud Run produkcji.
Te 3 kroki odpowiadają bezpośrednio krokom kompilacji 1, 2 i 3 wyświetlanym w Cloud Build w konsoli Google Cloud:
Etap przetwarzania
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 haseł tajnych określonych w pliku apphosting.yaml
i przypina je.
Etap kompilacji
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.
Do wydajnego pakowania aplikacji wykorzystuje pakiety kompilacji Cloud Native Buildpacks. Więcej informacji o 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 ze sobą 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 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.
Etap przekazania
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. Backend App Hosting używa tych informacji do skonfigurowania Cloud Run z odpowiednimi ustawieniami.
Więcej informacji
Cały App Hosting proces 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