Processus de compilation d'App Hosting

Firebase App Hosting utilise Cloud Build pour transformer le code source de votre application en un format conteneurisé adapté au déploiement sur Cloud Run.

Le processus de compilation se déroule en plusieurs étapes clés :

  1. ubuntu : initialisation de l'espace de travail.

  2. preparer : collecte le code source et la configuration de votre application.

  3. pre-buildpack : prépare l'environnement buildpack.

  4. build : installe les dépendances et crée votre application.

  5. publisher : finalise le conteneur Cloud Run de production.

Ces cinq étapes correspondent directement aux étapes de compilation telles qu'elles s'affichent dans Cloud Build de la console Google Cloud :

Capture d'écran d'une vue de la console Google Cloud montrant les étapes Cloud Build

Initialisation de l'espace de travail

Cette étape correspond à l'étape de compilation Ubuntu. Il initialise l'espace de travail de compilation, en s'assurant que les autorisations d'accès aux fichiers sont correctement définies pour les répertoires utilisés par les étapes de compilation suivantes.

Préparateur

Cette étape est chargée de gérer la logique de pré-compilation. Il lit, nettoie et écrit les variables d'environnement définies par l'utilisateur. Il déréférence et épingle également tous les secrets spécifiés dans le fichier apphosting.yaml.

Pre-buildpack

Cette étape prépare l'environnement pour le cycle de vie Cloud Native Buildpacks. Cela implique d'exécuter un shim qui traduit les configurations et les variables d'environnement préparées à l'étape précédente dans le format attendu par les outils CNB.

Compilation

Il s'agit du cœur du processus de compilation, chargé de générer une image de conteneur exécutable et un fichier bundle.yaml définissant votre configuration de compilation. Il utilise les Cloud Native Buildpacks et le binaire lifecycle creator pour empaqueter l'application de manière efficace. Pour en savoir plus sur le fichier bundle.yaml, consultez github.

Les buildpacks sont chargés de transformer le code source de votre application en images de conteneur prêtes pour la production. Firebase App Hosting enchaîne plusieurs buildpacks pour finaliser le processus de compilation :

  1. Buildpack d'exécution : garantit que tous les composants nécessaires à l'exécution d'une application Node.js de base sont inclus et que les dépendances sont installées.
  2. Buildpack Monorepo : configure les buildpacks suivants pour gérer différents scénarios de monorepo.
  3. Buildpack de framework : installe l'adaptateur de framework approprié (comme Angular ou Next.js) et prépare les buildpacks suivants.

    Les adaptateurs de framework sont chargés d'exécuter la commande de compilation de production et de mapper toutes les valeurs de configuration spécifiques au framework dans un format standard lisible par App Hosting.

  4. Buildpack du gestionnaire de packages : exécute l'installation des dépendances et crée l'application à l'aide de npm, yarn ou pnpm.

  5. Buildpack de bundle de sortie : définit la commande d'exécution et prépare le bundle de sortie pour l'exécution.

Éditeur

Cette dernière étape regroupe toutes les informations extraites du code source de l'application, ainsi que l'image du conteneur de compilation, et les envoie au backend App Hosting. Le backend App Hosting utilise ensuite ces informations pour configurer Cloud Run avec les configurations appropriées.

En savoir plus

L'ensemble du processus de compilation App Hosting est Open Source.