Firebase App Hosting utilizza Cloud Build per trasformare il codice sorgente dell'applicazione in un formato containerizzato adatto al deployment su Cloud Run.
Il processo di compilazione si svolge nelle seguenti fasi chiave:
Importazione: raccoglie il codice sorgente e la configurazione dell'applicazione.
Build: installa le dipendenze e crea l'applicazione.
Handoff: finalizza il contenitore Cloud Run di produzione.
Questi tre passaggi corrispondono direttamente ai passaggi di build 1, 2 e 3 visualizzati in Cloud Build nella console Google Cloud:
Fase di importazione
Questa fase è responsabile della gestione della logica pre-build. Legge, pulisce e
scrive le variabili di ambiente definite dall'utente. Inoltre, annulla il riferimento e blocca tutti i
secret specificati nel file apphosting.yaml
.
Fase di build
Questo è il fulcro del processo di build, responsabile della generazione di un'immagine container eseguibile e di un file bundle.yaml
che definisce la configurazione della build.
Utilizza Cloud Native Buildpacks
per creare pacchetti
dell'applicazione in modo efficiente. Ulteriori informazioni sul file bundle.yaml
sono disponibili
su GitHub.
I buildpack sono responsabili della trasformazione del codice sorgente dell'applicazione in immagini container pronte per la produzione. Firebase App Hosting mette insieme diversi buildpack per completare il processo di compilazione:
- Runtime Buildpack: garantisce che siano inclusi tutti i componenti necessari per l'esecuzione di un'applicazione Node.js di base e che le dipendenze siano installate.
- Buildpack monorepo: configura i buildpack successivi per gestire diversi scenari monorepo.
Framework Buildpack: installa l'adattatore framework corretto (ad esempio Angular o Next.js) e prepara i buildpack successivi.
Gli adattatori del framework sono responsabili dell'esecuzione del comando di build di produzione e del mapping di tutti i valori di configurazione specifici del framework pertinenti a un formato standard leggibile da App Hosting.
Buildpack Package Manager: esegue l'installazione delle dipendenze e crea l'app utilizzando npm, yarn o pnpm.
Output Bundle Buildpack: definisce il comando di esecuzione e prepara il bundle di output per l'esecuzione.
Fase di trasferimento
Questa fase finale pacchettizza tutte le informazioni estratte dal codice sorgente dell'applicazione più l'immagine del container di build e le invia al backend App Hosting. Il backend App Hosting utilizza quindi queste informazioni per configurare Cloud Run con le configurazioni appropriate.
Scopri di più
L'intero processo di compilazione di App Hosting è open source.
- Il codice del buildpack si trova nel repository dei buildpack di Google Cloud
- Il codice per gli adattatori del framework si trova nel repository firebase-framework-tools
- Scopri di più su Cloud Native Buildpacks e Cloud Build