O processo de build do App Hosting

O Firebase App Hosting usa Cloud Build para transformar o código-fonte do aplicativo em um formato contêinerizado adequado para implantação no Cloud Run.

O processo de build opera nas seguintes etapas principais:

  1. Transferência: reúne o código-fonte e a configuração do aplicativo.

  2. Build: instala dependências e cria o aplicativo.

  3. Transferência: finaliza o contêiner Cloud Run de produção.

Essas três etapas correspondem diretamente às etapas de build 1, 2 e 3, conforme exibido em Cloud Build no console do Google Cloud:

Uma captura de tela de uma visualização do console do Google Cloud com as etapas do Cloud Build

Fase de transferência

Essa etapa é responsável por processar a lógica pré-build. Ele lê, higieniza e grava variáveis de ambiente definidas pelo usuário. Ele também faz a dereferência e fixa todos os segredos especificados no arquivo apphosting.yaml.

Fase de build

Esse é o núcleo do processo de build, responsável por gerar uma imagem de contêiner executável e um arquivo bundle.yaml que define a configuração do build. Ele usa Buildpacks nativos do Cloud para empacotar o aplicativo de maneira eficiente. 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. O Firebase App Hosting encadeia vários buildpacks para concluir o processo de build:

  1. Buildpack de ambiente de execução: garante que todos os componentes necessários para executar um aplicativo Node.js básico sejam incluídos e que as dependências sejam instaladas.
  2. Buildpack de monorepo: configura buildpacks subsequentes para processar diferentes cenários de monorepo.
  3. Buildpack de framework: instala o adaptador de framework correto (como Angular ou Next.js) e prepara os 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 específicos do framework para um formato padrão legível por App Hosting.

  4. Buildpack do gerenciador de pacotes: executa a instalação de dependências e cria o app usando npm, yarn ou pnpm.

  5. Buildpack de pacote de saída: define o comando de execução e prepara o pacote de saída para execução.

Fase de transferência

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 back-end App Hosting. O back-end do App Hosting 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.