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. ubuntu: inicjowanie obszaru roboczego.

  2. preparer: zbiera kod źródłowy i konfigurację aplikacji.

  3. pre-buildpack: przygotowuje środowisko pakietu kompilacji.

  4. build: instaluje zależności i kompiluje aplikację.

  5. Wydawca: finalizuje produkcję kontenera Cloud Run.

Te 5 kroków odpowiada bezpośrednio krokom kompilacji wyświetlanym w Cloud Build w konsoli Google Cloud:

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

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:

  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 odczytywany przez 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.

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.