Firebase App Hosting usa Cloud Build para transformar o código-fonte do aplicativo em um formato em contêiner adequado para implantação em Cloud Run.
O processo de build opera nas seguintes etapas principais:
ubuntu: inicialização do espaço de trabalho.
preparer: coleta o código-fonte e a configuração do aplicativo.
pre-buildpack: prepara o ambiente do buildpack.
build: instala dependências e cria o aplicativo.
publisher: finaliza o contêiner de produção Cloud Run.
Essas cinco etapas correspondem diretamente às etapas de build exibidas em Cloud Build no console Google Cloud:

Inicialização do espaço de trabalho
Essa etapa corresponde à etapa de build do ubuntu. Ela inicializa o espaço de trabalho do build, garantindo que as permissões de arquivo corretas sejam definidas para os diretórios usados pelas etapas de build subsequentes.
Preparador
Essa etapa é responsável por processar a lógica de pré-build. Ela lê, higieniza e grava variáveis de ambiente definidas pelo usuário. Ela também desreferencia e fixa todos os secrets especificados no arquivo apphosting.yaml.
Pré-buildpack
Essa etapa prepara o ambiente para o ciclo de vida dos Buildpacks nativos do Cloud. Isso envolve a execução de um shim que traduz as configurações e variáveis de ambiente preparadas na etapa anterior para o formato esperado pelas ferramentas do CNB.
Criar
Esse é o núcleo do processo de build, responsável por gerar uma imagem do contêiner executável e um arquivo bundle.yaml que define a configuração do build.
Ele usa os Buildpacks nativos do Cloud
e o criador do ciclo de vida
binário para empacotar o
aplicativo com eficiência. Mais informações sobre o arquivo bundle.yaml podem ser encontradas
no GitHub.
Os buildpacks são responsáveis por transformar o código-fonte do aplicativo em imagens de contêiner prontas para produção. Firebase App Hosting encadeia vários buildpacks para concluir o processo de build:
- Buildpack de ambiente de execução: garante que todos os componentes necessários para executar um aplicativo Node.js básico estejam incluídos e que as dependências estejam instaladas.
- Buildpack do monorepo: configura buildpacks subsequentes para processar diferentes cenários de monorepo.
Buildpack de framework: instala o adaptador de framework correto (como Angular ou Next.js) e prepara buildpacks subsequentes.
Os adaptadores de framework são responsáveis por executar o comando de build de produção e mapear todos os valores de configuração relevantes específicos do framework para um formato padrão legível por App Hosting.
Buildpack do gerenciador de pacotes: executa a instalação de dependências e cria o app usando npm, yarn ou pnpm.
Buildpack do pacote de saída: define o comando de execução e prepara o pacote de saída para execução.
Editor
Essa etapa final empacota todas as informações extraídas do código-fonte do aplicativo, além da imagem do contêiner de build, e as envia para o App Hosting back-end. Em seguida, o App Hosting back-end usa essas informações para configurar Cloud Run com as configurações adequadas.
Saiba mais
Todo o processo de build do App Hosting é de código aberto.
- O código do buildpack está no repositório de buildpacks do Google Cloud
- O código dos adaptadores de framework está no repositório firebase-framework-tools
- Saiba mais sobre os buildpacks nativos do Cloud e o Cloud Build