Proces kompilacji w usłudze App Hosting

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:

  1. Przetwarzanie: zbiera kod źródłowy i konfigurację aplikacji.

  2. Kompilacja: instaluje zależności i kompiluje aplikację.

  3. 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:

Zrzut ekranu z konsoli Google Cloud przedstawiający kroki Cloud Build

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.yamlznajdziesz 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:

  1. Runtime Buildpack: zapewnia, że wszystkie niezbędne komponenty do uruchomienia podstawowej aplikacji Node.js są uwzględnione, a zależności są zainstalowane.
  2. Monorepo Buildpack: konfiguruje kolejne pakiety kompilacji do obsługi różnych scenariuszy monorepo.
  3. 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.

  4. Pakiet Package Manager Buildpack: wykonuje instalację zależności i kompiluje aplikację za pomocą npm, yarn lub pnpm.

  5. 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.