Firebase App Hosting menggunakan Cloud Build untuk mengubah kode sumber aplikasi Anda menjadi format dalam container yang sesuai untuk deployment di Cloud Run.
Proses build beroperasi melalui tahap utama berikut:
ubuntu: Inisialisasi ruang kerja.
preparer: Mengumpulkan kode sumber dan konfigurasi aplikasi Anda.
pre-buildpack: Menyiapkan lingkungan buildpack.
build: Menginstal dependensi dan mem-build aplikasi Anda.
publisher: Menyelesaikan container produksi Cloud Run.
Kelima langkah ini sesuai langsung dengan langkah-langkah build seperti yang ditampilkan di Cloud Build di konsol Google Cloud:

Inisialisasi Ruang Kerja
Tahap ini sesuai dengan langkah build ubuntu. Tahap ini menginisialisasi ruang kerja build, memastikan izin file yang benar ditetapkan untuk direktori yang digunakan oleh langkah-langkah build berikutnya.
Preparer
Tahap ini bertanggung jawab untuk menangani logika pra-build. Tahap ini membaca, membersihkan, dan menulis variabel lingkungan yang ditentukan pengguna. Tahap ini juga membatalkan referensi dan menyematkan rahasia apa pun yang ditentukan dalam file apphosting.yaml.
Pre-buildpack
Langkah ini menyiapkan lingkungan untuk Buildpack Berbasis Cloud siklus proses. Hal ini melibatkan menjalankan shim yang menerjemahkan konfigurasi dan variabel lingkungan yang disiapkan pada tahap sebelumnya ke dalam format yang diharapkan oleh alat CNB.
Build
Ini adalah inti dari proses build, yang bertanggung jawab untuk menghasilkan image container yang dapat dijalankan dan file bundle.yaml yang menentukan konfigurasi build Anda.
Proses ini menggunakan Buildpack Berbasis Cloud
dan biner pembuat siklus proses
untuk mengemas aplikasi
secara efisien. Informasi selengkapnya tentang file bundle.yaml dapat ditemukan
di GitHub.
Buildpack bertanggung jawab untuk mengubah kode sumber aplikasi Anda menjadi image container yang siap produksi. Firebase App Hosting menggabungkan beberapa buildpack untuk menyelesaikan proses build:
- Runtime Buildpack: Memastikan semua komponen yang diperlukan untuk menjalankan aplikasi Node.js dasar disertakan dan dependensi diinstal.
- Monorepo Buildpack: Mengonfigurasi buildpack berikutnya untuk menangani berbagai skenario monorepo.
Framework Buildpack: Menginstal adaptor framework yang benar (seperti Angular atau Next.js) dan menyiapkan buildpack berikutnya.
Adaptor framework bertanggung jawab untuk menjalankan perintah build yang diproduksi dan memetakan nilai konfigurasi khusus framework yang relevan ke format standar yang dapat dibaca oleh App Hosting.
Package Manager Buildpack: Menjalankan penginstalan dependensi dan mem-build aplikasi menggunakan npm, yarn, atau pnpm.
Output Bundle Buildpack: Menentukan perintah run dan menyiapkan paket output untuk dieksekusi.
Publisher
Tahap akhir ini mengemas semua informasi yang diekstrak dari kode sumber aplikasi ditambah image container build dan mengirimkannya ke App Hosting backend. Backend App Hosting kemudian menggunakan informasi ini untuk menyiapkan Cloud Run dengan konfigurasi yang tepat.
Pelajari lebih lanjut
Seluruh proses build App Hosting bersifat open source.
- Kode buildpack ada di repo buildpack Google Cloud
- Kode untuk adaptor framework ada di repo firebase-framework-tools
- Pelajari lebih lanjut buildpack Berbasis Cloud dan Cloud Build