App Hosting 构建流程

Firebase App Hosting 利用 Cloud Build 将应用源代码转换为适合在 Cloud Run 上部署的容器化格式。

build 流程会通过以下关键阶段运行:

  1. 提取:收集应用源代码和配置。

  2. 构建:安装依赖项并构建应用。

  3. 交接:最终确定正式版 Cloud Run 容器。

这三个步骤直接对应于 Google Cloud 控制台 Cloud Build 中显示的构建步骤 1、2 和 3:

显示 Cloud Build 步骤的 Google Cloud 控制台视图的屏幕截图

提取阶段

此阶段负责处理构建前逻辑。它会读取、清理和写入用户定义的环境变量。它还会解引用并固定 apphosting.yaml 文件中指定的所有密钥。

构建阶段

这是构建流程的核心,负责生成可运行的容器映像和用于定义构建配置的 bundle.yaml 文件。它利用 Cloud Native Buildpack 高效地打包应用。如需详细了解 bundle.yaml 文件,请访问 github

Buildpack 负责将应用源代码转换为可用于生产环境的容器映像。Firebase App Hosting 会将多个 buildpack 串联起来以完成构建流程:

  1. 运行时 Buildpack:确保包含运行基本 Node.js 应用所需的所有组件,并安装依赖项。
  2. Monorepo Buildpack:配置后续 buildpack 以处理不同的 monorepo 场景。
  3. 框架 Buildpack:安装正确的框架适配器(例如 Angular 或 Next.js),并准备后续的 Buildpack。

    框架适配器负责运行正式版 build 命令,并将任何相关的框架专用配置值映射到 App Hosting 可读取的标准格式。

  4. 软件包管理器 Buildpack:使用 npm、yarn 或 pnpm 执行依赖项安装并构建应用。

  5. 输出软件包 buildpack:定义运行命令并准备输出软件包以供执行。

接手阶段

此最终阶段会打包从应用源代码中提取的所有信息以及 build 容器映像,并将其发送到 App Hosting 后端。然后,App Hosting 后端使用这些信息以适当的配置设置 Cloud Run

了解详情

整个 App Hosting 构建流程都是开源的。