Firebase App Hosting sử dụng Cloud Build để chuyển đổi mã nguồn ứng dụng của bạn thành một định dạng đóng gói phù hợp để triển khai trên Cloud Run.
Quy trình tạo hoạt động thông qua các giai đoạn chính sau:
ubuntu: Khởi chạy không gian làm việc.
preparer: Thu thập mã nguồn và cấu hình ứng dụng của bạn.
pre-buildpack: Chuẩn bị môi trường buildpack.
build: Cài đặt các phần phụ thuộc và tạo ứng dụng của bạn.
publisher: Hoàn tất vùng chứa Cloud Run sản xuất.
Năm bước này tương ứng trực tiếp với các bước tạo như xuất hiện trong Cloud Build trong Bảng điều khiển Google Cloud:

Khởi tạo không gian làm việc
Giai đoạn này tương ứng với bước tạo ubuntu. Thao tác này sẽ khởi tạo không gian làm việc bản dựng, đảm bảo rằng các quyền truy cập tệp chính xác được đặt cho các thư mục mà các bước bản dựng tiếp theo sử dụng.
Người chuẩn bị
Giai đoạn này chịu trách nhiệm xử lý logic trước khi tạo. Thư viện này đọc, dọn dẹp và ghi các biến môi trường do người dùng xác định. Thư viện này cũng huỷ tham chiếu và ghim mọi bí mật được chỉ định trong tệp apphosting.yaml.
Pre-buildpack
Bước này chuẩn bị môi trường cho vòng đời Cloud Native Buildpacks. Việc này liên quan đến việc chạy một shim để dịch các cấu hình và biến môi trường được chuẩn bị ở giai đoạn trước thành định dạng mà các công cụ CNB mong đợi.
Bản dựng
Đây là cốt lõi của quy trình tạo bản dựng, chịu trách nhiệm tạo một hình ảnh vùng chứa có thể chạy và một tệp bundle.yaml xác định cấu hình bản dựng của bạn.
Công cụ này sử dụng Cloud Native Buildpacks và tệp nhị phân trình tạo vòng đời để đóng gói ứng dụng một cách hiệu quả. Bạn có thể tìm thêm thông tin về tệp bundle.yaml trên github.
Buildpack chịu trách nhiệm chuyển đổi mã nguồn ứng dụng của bạn thành hình ảnh vùng chứa sẵn sàng cho sản xuất. Firebase App Hosting kết hợp nhiều gói bản dựng để hoàn tất quy trình tạo bản dựng:
- Runtime Buildpack: Đảm bảo rằng tất cả các thành phần cần thiết để chạy một ứng dụng Node.js cơ bản đều được đưa vào và các phần phụ thuộc đều được cài đặt.
- Monorepo Buildpack: Định cấu hình các buildpack tiếp theo để xử lý các tình huống monorepo khác nhau.
Framework Buildpack: Cài đặt bộ chuyển đổi khung hình phù hợp (chẳng hạn như Angular hoặc Next.js) và chuẩn bị các buildpack tiếp theo.
Bộ chuyển đổi khung chịu trách nhiệm chạy lệnh tạo bản dựng được sản xuất và ánh xạ mọi giá trị cấu hình cụ thể theo khung có liên quan sang định dạng tiêu chuẩn mà App Hosting có thể đọc được.
Package Manager Buildpack: Thực thi quá trình cài đặt các phần phụ thuộc và tạo ứng dụng bằng npm, yarn hoặc pnpm.
Gói đầu ra Buildpack: Xác định lệnh chạy và chuẩn bị gói đầu ra để thực thi.
Nhà xuất bản
Giai đoạn cuối cùng này đóng gói tất cả thông tin được trích xuất từ mã nguồn ứng dụng cùng với hình ảnh vùng chứa bản dựng và gửi đến phần phụ trợ App Hosting. Sau đó, phần phụ trợ App Hosting sẽ sử dụng thông tin này để thiết lập Cloud Run với cấu hình phù hợp.
Tìm hiểu thêm
Toàn bộ quy trình tạo App Hosting đều là nguồn mở.
- Mã buildpack nằm trong kho lưu trữ buildpack của Google Cloud
- Mã cho bộ chuyển đổi khung nằm trong kho lưu trữ firebase-framework-tools
- Tìm hiểu thêm về Cloud Native buildpacks và Cloud Build