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:
Ingestion: collecte le code source et la configuration de votre application.
Build (Compilation) : installe les dépendances et compile votre application.
Transfert: finalise le conteneur Cloud Run de production.
Ces trois étapes correspondent directement aux étapes de compilation 1, 2 et 3 telles qu'elles s'affichent dans Cloud Build dans la console Google Cloud:
Phase d'ingestion
Cette étape est chargée de gérer la logique de précompilation. Il lit, nettoie et écrit des variables d'environnement définies par l'utilisateur. Il déréfère et épingle également toutes les secrets spécifiées dans le fichier apphosting.yaml
.
Étape de compilation
Il s'agit du cœur du processus de compilation, qui est chargé de générer une image de conteneur exécutable et un fichier bundle.yaml
définissant votre configuration de compilation.
Il utilise des buildpacks cloud natifs 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 terminer le processus de compilation:
- 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.
- Buildpack Monorepo: configure les buildpacks suivants pour gérer différents scénarios monorepo.
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 en production et de mapper les valeurs de configuration spécifiques au framework pertinent sur un format standard lisible par App Hosting.
Buildpack du gestionnaire de paquets: exécute l'installation des dépendances et compile l'application à l'aide de npm, yarn ou pnpm.
Buildpack de bundle de sortie: définit la commande d'exécution et prépare le bundle de sortie pour l'exécution.
Étape de transfert
Cette dernière étape empaquette 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'intégralité du processus de compilation App Hosting est Open Source.
- Le code du buildpack se trouve dans le dépôt des buildpacks Google Cloud.
- Le code des adaptateurs de framework se trouve dans le dépôt firebase-framework-tools.
- En savoir plus sur les buildpacks cloud natifs et Cloud Build