Firebase App Hosting utilizza Cloud Build per trasformare il codice sorgente dell'applicazione in un formato containerizzato adatto per il deployment su Cloud Run.
Il processo di compilazione prevede le seguenti fasi chiave:
Importazione: raccoglie il codice sorgente e la configurazione dell'applicazione.
Compilazione: installa le dipendenze e compila l'applicazione.
Trasferimento: completa il contenitore Cloud Run di produzione.
Questi tre passaggi corrispondono direttamente ai passaggi di compilazione 1, 2 e 3 visualizzati inCloud Build nella console Google Cloud:
Fase di importazione
Questa fase è responsabile della gestione della logica di pre-compilazione. Legge, esegue la sanitizzazione e
scrive le variabili di ambiente definite dall'utente. Inoltre, dereferizza e blocca tutti i segreti specificati nel file apphosting.yaml
.
Fase di compilazione
Questo è il nucleo del processo di compilazione, responsabile della generazione di un'immagine container eseguibile e di un file bundle.yaml
che definisce la configurazione di compilazione.
Utilizza Buildpacks cloud-native per impacchettare l'applicazione in modo efficiente. Puoi trovare maggiori informazioni sul file bundle.yaml
su GitHub.
I buildpack sono responsabili della trasformazione del codice sorgente dell'applicazione in immagini container pronte per la produzione. Firebase App Hosting collega insieme diversi buildpack per completare il processo di compilazione:
- Buildpack di runtime: garantisce che tutti i componenti necessari per eseguire un'applicazione Node.js di base siano inclusi e che le dipendenze siano installate.
- Buildpack monorepo: configura i buildpack successivi per gestire diversi scenari monorepo.
Buildpack del framework: installa l'adattatore del framework corretto (ad esempio Angular o Next.js) e prepara i buildpack successivi.
Gli adattatori del framework sono incaricati di eseguire il comando di compilazione in produzione e di mappare eventuali valori di configurazione specifici del framework a un formato standard leggibile da App Hosting.
Package Manager Buildpack: esegue l'installazione delle dipendenze e compila l'app utilizzando npm, yarn o pnpm.
Buildpack del bundle di output: definisce il comando di esecuzione e prepara il bundle di output per l'esecuzione.
Fase di passaggio
Questa fase finale pacchettizza tutte le informazioni estratte dal codice sorgente dell'applicazione, oltre all'immagine del contenitore di compilazione, e le invia al backend App Hosting. Il backend di App Hosting utilizza queste informazioni per configurare Cloud Run con le configurazioni appropriate.
Scopri di più
L'intera procedura di compilazione di App Hosting è open source.
- Il codice del buildpack si trova nel repo dei buildpack di Google Cloud
- Il codice per gli adattatori del framework si trova nel repo firebase-framework-tools
- Scopri di più su Buildpack per cloud native e Cloud Build