App Hosting 建構程序

Firebase App Hosting 會使用 Cloud Build 將應用程式原始碼轉換為容器化格式,以便部署至 Cloud Run

建構程序會經過下列主要階段:

  1. ubuntu:Workspace 初始化。

  2. 準備者:收集應用程式原始碼和設定。

  3. pre-buildpack:準備 buildpack 環境。

  4. build:安裝依附元件並建構應用程式。

  5. 發布商:完成製作Cloud Run容器。

這五個步驟直接對應於 Google Cloud 控制台中顯示的建構步驟:Cloud Build

Google Cloud 控制台的 Cloud Build 步驟畫面截圖

工作區初始化

這個階段對應於 ubuntu 建構步驟。這個步驟會初始化建構工作區,確保後續建構步驟所用目錄的檔案權限設定正確。

準備者

這個階段負責處理建構前邏輯。這個函式會讀取、清除及寫入使用者定義的環境變數。此外,也會取消參照並釘選 apphosting.yaml 檔案中指定的任何密鑰。

前置建構包

這個步驟會準備 Cloud Native Buildpacks 生命週期的環境。這項作業需要執行墊片,將上一個階段準備的設定和環境變數轉換為 CNB 工具預期的格式。

建構

這是建構程序的核心,負責產生可執行的容器映像檔,以及定義建構設定的 bundle.yaml 檔案。這項工具會使用 Cloud Native Buildpacks 和生命週期建立工具二進位檔,有效率地封裝應用程式。如要進一步瞭解 bundle.yaml 檔案,請前往 GitHub

Buildpacks 負責將應用程式原始碼轉換為可立即用於實際工作環境的容器映像檔。Firebase App Hosting 會將多個建構包串連在一起,完成建構程序:

  1. 執行階段建構包:確保包含執行基本 Node.js 應用程式所需的所有元件,並安裝依附元件。
  2. Monorepo Buildpack:設定後續的建構套件,處理不同的 Monorepo 情境。
  3. 架構 Buildpack:安裝正確的架構介面卡 (例如 Angular 或 Next.js),並準備後續的 Buildpack。

    架構轉接程式負責執行正式版建構指令,並將所有相關的架構專屬設定值對應至 App Hosting 可讀取的標準格式。

  4. 套件管理員 Buildpack:使用 npm、yarn 或 pnpm 執行依附元件安裝作業,並建構應用程式。

  5. 輸出套件建構包:定義執行指令,並準備要執行的輸出套件。

發布者

最後一個階段會封裝從應用程式原始碼擷取的所有資訊,以及建構容器映像檔,並傳送至後端。App HostingApp 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建構程序都是開放原始碼。