Firebase App Hosting 會使用 Cloud Build 將應用程式原始碼轉換為容器化格式,以便部署至 Cloud Run。
建構程序包含下列主要階段:
ubuntu:Workspace 初始化。
準備者:收集應用程式原始碼和設定。
pre-buildpack:準備 buildpack 環境。
build:安裝依附元件並建構應用程式。
發布者:完成製作 Cloud Run 容器。
這五個步驟直接對應於 Google Cloud 控制台 Cloud Build 中顯示的建構步驟:

工作區初始化
這個階段對應於 Ubuntu 建構步驟。這會初始化建構工作區,確保為後續建構步驟使用的目錄設定正確的檔案權限。
準備者
這個階段負責處理建構前邏輯。可讀取、清除及寫入使用者定義的環境變數。此外,也會取消參照並釘選 apphosting.yaml 檔案中指定的任何密鑰。
Pre-buildpack
這個步驟會準備 Cloud Native Buildpacks 生命週期的環境。這項作業需要執行墊片,將上一個階段準備的設定和環境變數,轉換為 CNB 工具預期的格式。
建構
這是建構程序的核心,負責產生可執行的容器映像檔,以及定義建構設定的 bundle.yaml 檔案。這項工具會使用 Cloud Native Buildpacks 和生命週期建立者二進位檔,有效率地封裝應用程式。如要進一步瞭解 bundle.yaml 檔案,請前往 GitHub。
Buildpacks 負責將應用程式原始碼轉換為可立即用於實際工作環境的容器映像檔。Firebase App Hosting 會將多個建構包串連在一起,完成建構程序:
- 執行階段建構包:確保包含執行基本 Node.js 應用程式所需的所有元件,並安裝依附元件。
- Monorepo Buildpack:設定後續的建構套件,以處理不同的 Monorepo 情境。
框架建構包:安裝正確的框架介面卡 (例如 Angular 或 Next.js),並準備後續的建構包。
架構轉接程式負責執行正式版建構指令,並將所有相關的架構專屬設定值對應至 App Hosting 可讀取的標準格式。
套件管理員 Buildpack:使用 npm、yarn 或 pnpm 執行依附元件安裝作業,並建構應用程式。
輸出套裝組合建構包:定義執行指令,並準備要執行的輸出套裝組合。
發布者
最後一個階段會封裝從應用程式原始碼擷取的所有資訊,以及建構容器映像檔,並傳送至 App Hosting後端。App Hosting 後端接著會使用這項資訊,以適當的設定建立 Cloud Run。
建立資源清理政策
Firebase App Hosting 強制執行自動建構保留和清除政策。根據這項政策,App Hosting 會保留過去 14 天內成功建構的版本和相關聯的Cloud Run修訂版本。此外,為確保您隨時都能還原建構作業,App Hosting 會保留最近 5 個成功的建構和推出作業,不論這些作業的建立時間為何。
App Hosting 絕不會刪除或移除目前處於有效流量分配狀態,或是與進行中推出作業相關聯的版本。
如果舊版組建超過這些保留期限,內部狀態就會更新為 EXPIRED。您無法對 EXPIRED 版本執行即時復原,且這些版本的相關復原選項會從 Firebase 控制台中移除。您必須建立以相同來源為目標的新版本 (Git 修訂版本、Artifact Registry 中的容器或 Google Cloud Storage 值區),然後推出該版本。
如要節省建構資源,可以控管觸發自動推出作業的頻率。請參閱「管理自動推出功能」。
瞭解詳情
整個 App Hosting 建構程序都是開放原始碼。
- Buildpack 程式碼位於 Google Cloud Buildpacks 存放區
- 架構轉接程式的程式碼位於 firebase-framework-tools 存放區
- 進一步瞭解 Cloud Native buildpack 和 Cloud Build