O processo de build do App Hosting

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:

  1. ubuntu: inicialização do espaço de trabalho.

  2. preparer: coleta o código-fonte e a configuração do aplicativo.

  3. pre-buildpack: prepara o ambiente do buildpack.

  4. build: instala dependências e cria o aplicativo.

  5. 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:

Captura de tela de uma visualização do console do Google Cloud das etapas do Cloud Build

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:

  1. 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.
  2. Buildpack do 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 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.

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

  5. 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.