Firebase App Hosting utiliza Cloud Build para transformar el código fuente de tu aplicación en un formato en contenedores adecuado para la implementación en Cloud Run.
El proceso de compilación opera a través de las siguientes etapas clave:
ubuntu: Inicialización del espacio de trabajo.
preparer: Recopila el código fuente y la configuración de tu aplicación.
pre-buildpack: Prepara el entorno del paquete de compilación.
build: Instala las dependencias y compila tu aplicación.
publisher: Finaliza el contenedor de producción Cloud Run.
Estos cinco pasos corresponden directamente a los pasos de compilación que se muestran en Cloud Build en la consola de Google Cloud:

Inicialización del espacio de trabajo
Esta etapa corresponde al paso de compilación de Ubuntu. Inicializa el espacio de trabajo de compilación y garantiza que se establezcan los permisos de archivo correctos para los directorios que utilizan los pasos de compilación posteriores.
Preparador
Esta etapa se encarga de controlar la lógica previa a la compilación. Lee, sanitiza y escribe variables de entorno definidas por el usuario. También desreferencia y fija los secretos especificados en el archivo apphosting.yaml.
Pre-buildpack
En este paso, se prepara el entorno para el ciclo de vida de Cloud Native Buildpacks. Esto implica ejecutar un shim que traduce las configuraciones y las variables de entorno preparadas en la etapa anterior al formato que esperan las herramientas de CNB.
Compilación
Este es el núcleo del proceso de compilación, responsable de generar una imagen de contenedor ejecutable y un archivo bundle.yaml que define tu configuración de compilación.
Utiliza los Cloud Native Buildpacks y el archivo binario lifecycle creator para empaquetar la aplicación de manera eficiente. Puedes encontrar más información sobre el archivo bundle.yaml en GitHub.
Los buildpacks son responsables de transformar el código fuente de tu aplicación en imágenes de contenedor listas para la producción. Firebase App Hosting encadena varios buildpacks para completar el proceso de compilación:
- Buildpack de entorno de ejecución: Garantiza que se incluyan todos los componentes necesarios para ejecutar una aplicación básica de Node.js y que se instalen las dependencias.
- Paquete de compilación de monorepo: Configura los paquetes de compilación posteriores para controlar diferentes situaciones de monorepo.
Framework Buildpack: Instala el adaptador de framework correcto (como Angular o Next.js) y prepara los buildpacks posteriores.
Los adaptadores de framework se encargan de ejecutar el comando de compilación para producción y asignar cualquier valor de configuración específico del framework pertinente a un formato estándar que pueda leer App Hosting.
Paquete de compilación del administrador de paquetes: Ejecuta la instalación de dependencias y compila la app con npm, yarn o pnpm.
Paquete de compilación de paquetes de salida: Define el comando de ejecución y prepara el paquete de salida para la ejecución.
Publisher
En esta etapa final, se empaqueta toda la información extraída del código fuente de la aplicación, además de la imagen del contenedor de compilación, y se envía al backend de App Hosting. Luego, el backend de App Hosting usa esta información para configurar Cloud Run con los parámetros adecuados.
Más información
Todo el proceso de compilación de App Hosting es de código abierto.
- El código del paquete de compilación se encuentra en el repo de los paquetes de compilación de Google Cloud.
- El código de los adaptadores de frameworks se encuentra en el repositorio de firebase-framework-tools.
- Obtén más información sobre los paquetes de compilación nativos de la nube y Cloud Build.