La procedura di compilazione di App Hosting

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 build si svolge nelle seguenti fasi principali:

  1. ubuntu: inizializzazione del workspace.

  2. preparer: raccoglie il codice sorgente e la configurazione dell'applicazione.

  3. pre-buildpack: prepara l'ambiente buildpack.

  4. build: installa le dipendenze e crea l'applicazione.

  5. publisher: finalizza il container di produzione Cloud Run.

Questi cinque passaggi corrispondono direttamente ai passaggi di build visualizzati in Cloud Build nella console Google Cloud:

Acquisizione dello schermo di una visualizzazione della console Google Cloud dei passaggi di Cloud Build

Inizializzazione del workspace

Questa fase corrisponde al passaggio di build ubuntu. Inizializza il workspace di build, assicurandosi che siano impostate le autorizzazioni file corrette per le directory utilizzate dai passaggi di build successivi.

Preparer

Questa fase è responsabile della gestione della logica pre-build. Legge, sanifica e scrive le variabili di ambiente definite dall'utente. Inoltre, annulla il riferimento e blocca tutti i secret specificati nel file apphosting.yaml.

Pre-buildpack

Questo passaggio prepara l'ambiente per il ciclo di vita di Cloud Native Buildpacks. Ciò comporta l'esecuzione di uno shim che traduce le configurazioni e le variabili di ambiente preparate nella fase precedente nel formato previsto dagli strumenti CNB.

Build

Questo è il cuore 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 e il file binario del creatore del ciclo di vita per pacchettizzare l' 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 concatena diversi buildpack per completare il processo di build:

  1. 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.
  2. Monorepo Buildpack: configura i buildpack successivi per gestire diversi scenari monorepo.
  3. Framework Buildpack: installa l'adattatore del framework corretto (come 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.

  4. Package Manager Buildpack: esegue l'installazione delle dipendenze e crea l'app utilizzando npm, yarn o pnpm.

  5. Output Bundle Buildpack: definisce il comando di esecuzione e prepara il pacchetto di output per l'esecuzione.

Publisher

Questa fase finale pacchettizza tutte le informazioni estratte dal codice sorgente dell'applicazione , oltre all'immagine container di build, e le invia al App Hosting backend. Il backend App Hosting utilizza queste informazioni per configurare Cloud Run con le configurazioni appropriate.

Scopri di più

L'intero App Hosting processo di build è open source.