Stay organized with collections
Save and categorize content based on your preferences.
Firebase App Hosting utilizes Cloud Build to transform your
application source code into a containerized format suitable for deployment on
Cloud Run.
The build process operates through the following key stages:
Ingest: Gathers your application source code and configuration.
Build: Installs dependencies and builds your application.
Handoff: Finalizes the production Cloud Run container.
These three steps correspond directly to build steps 1, 2 and 3 as displayed in
Cloud Build in the Google Cloud Console:
Ingest stage
This stage is responsible for handling pre-build logic. It reads, sanitizes, and
writes user-defined environment variables. It also dereferences and pins any
secrets specified in the apphosting.yaml file.
Build stage
This is the core of the build process, responsible for generating a runnable
container image and a bundle.yaml file defining your build configuration.
It utilizes Cloud Native Buildpacks
to package the
application efficiently. More information on the bundle.yamlfile can be found
on github.
Buildpacks are responsible for transforming your application source code into
production ready container images. Firebase App Hosting chains together
several buildpacks to complete the build process:
Runtime Buildpack: Ensures all necessary components for running a basic
Node.js application are included and dependencies are installed.
Monorepo Buildpack: Configures subsequent buildpacks to handle different
monorepo scenarios.
Framework Buildpack: Installs the correct framework adapter (like
Angular or Next.js) and prepares subsequent buildpacks.
Framework adapters are in charge of running the productionized build
command and mapping any relevant framework-specific config values to a
standard format readable by App Hosting.
Package Manager Buildpack: Executes the installation of dependencies and
builds the app using npm, yarn, or pnpm.
Output Bundle Buildpack: Defines the run command and prepares the output
bundle for execution.
Handoff stage
This final stage packages all the information extracted from the application
source code plus the build container image and sends it to the App Hosting
backend. The App Hosting backend then uses this information to set up
Cloud Run with the proper configurations.
Learn more
The entire App Hosting build process is open source.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-15 UTC."],[],[],null,["\u003cbr /\u003e\n\nFirebase App Hosting utilizes Cloud Build to transform your\napplication source code into a containerized format suitable for deployment on\nCloud Run.\n\nThe build process operates through the following key stages:\n\n1. **Ingest**: Gathers your application source code and configuration.\n\n2. **Build**: Installs dependencies and builds your application.\n\n3. **Handoff** : Finalizes the production Cloud Run container.\n\nThese three steps correspond directly to build steps 1, 2 and 3 as displayed in\nCloud Build in the Google Cloud Console:\n\nIngest stage\n\nThis stage is responsible for handling pre-build logic. It reads, sanitizes, and\nwrites user-defined environment variables. It also dereferences and pins any\nsecrets specified in the `apphosting.yaml` file.\n\nBuild stage\n\nThis is the core of the build process, responsible for generating a runnable\ncontainer image and a `bundle.yaml` file defining your build configuration.\nIt utilizes [Cloud Native Buildpacks](https://cloud.google.com/docs/buildpacks/overview)\nto package the\napplication efficiently. More information on the `bundle.yaml`file can be found\non [github](https://github.com/FirebaseExtended/firebase-framework-tools).\n\nBuildpacks are responsible for transforming your application source code into\nproduction ready container images. Firebase App Hosting chains together\nseveral buildpacks to complete the build process:\n\n1. **Runtime Buildpack**: Ensures all necessary components for running a basic Node.js application are included and dependencies are installed.\n2. **Monorepo Buildpack**: Configures subsequent buildpacks to handle different monorepo scenarios.\n3. **Framework Buildpack**: Installs the correct framework adapter (like\n Angular or Next.js) and prepares subsequent buildpacks.\n\n Framework adapters are in charge of running the productionized build\n command and mapping any relevant framework-specific config values to a\n standard format readable by App Hosting.\n4. **Package Manager Buildpack**: Executes the installation of dependencies and\n builds the app using npm, yarn, or pnpm.\n\n5. **Output Bundle Buildpack**: Defines the run command and prepares the output\n bundle for execution.\n\nHandoff stage\n\nThis final stage packages all the information extracted from the application\nsource code plus the build container image and sends it to the App Hosting\nbackend. The App Hosting backend then uses this information to set up\nCloud Run with the proper configurations.\n\nLearn more\n\nThe entire App Hosting build process is open source.\n\n- The buildpack code is in [the Google Cloud buildpacks repo](https://github.com/GoogleCloudPlatform/buildpacks)\n- Code for framework adapters is in the [firebase-framework-tools repo](https://github.com/FirebaseExtended/firebase-framework-tools)\n- Learn more about [Cloud Native buildpacks](https://cloud.google.com/docs/buildpacks/overview) and [Cloud Build](https://cloud.google.com/build/docs/overview)"]]