Proses build App Hosting

Firebase App Hosting menggunakan Cloud Build untuk mengubah kode sumber aplikasi Anda menjadi format yang di-container dan cocok untuk deployment di Cloud Run.

Proses build beroperasi melalui tahap-tahap utama berikut:

  1. ubuntu: Inisialisasi ruang kerja.

  2. preparer: Mengumpulkan kode sumber dan konfigurasi aplikasi Anda.

  3. pre-buildpack: Menyiapkan lingkungan buildpack.

  4. build: Menginstal dependensi dan membangun aplikasi Anda.

  5. publisher: Menyelesaikan penampung Cloud Run produksi.

Lima langkah ini sesuai langsung dengan langkah-langkah build seperti yang ditampilkan di Cloud Build di konsol Google Cloud:

Screenshot tampilan konsol Google Cloud dari langkah-langkah Cloud Build

Inisialisasi Workspace

Tahap ini sesuai dengan langkah build ubuntu. Tindakan ini menginisialisasi ruang kerja build, memastikan izin file yang benar ditetapkan untuk direktori yang digunakan oleh langkah-langkah build berikutnya.

Penyiap

Tahap ini bertanggung jawab untuk menangani logika pra-build. Fungsi ini membaca, membersihkan, dan menulis variabel lingkungan yang ditentukan pengguna. Selain itu, ini juga membatalkan referensi dan menyematkan rahasia yang ditentukan dalam file apphosting.yaml.

Pre-buildpack

Langkah ini menyiapkan lingkungan untuk siklus proses Cloud Native Buildpacks. 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 membuat image container yang dapat dijalankan dan file bundle.yaml yang menentukan konfigurasi build Anda. Proses ini menggunakan Buildpack Berbasis Cloud dan program 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:

  1. Runtime Buildpack: Memastikan semua komponen yang diperlukan untuk menjalankan aplikasi Node.js dasar disertakan dan dependensi diinstal.
  2. Buildpack Monorepo: Mengonfigurasi buildpack berikutnya untuk menangani berbagai skenario monorepo.
  3. 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 spesifik framework yang relevan ke format standar yang dapat dibaca oleh App Hosting.

  4. Buildpack Pengelola Paket: Menjalankan penginstalan dependensi dan membangun aplikasi menggunakan npm, yarn, atau pnpm.

  5. Output Bundle Buildpack: Menentukan perintah run dan menyiapkan output bundle untuk dieksekusi.

Penayang

Tahap akhir ini memaketkan semua informasi yang diekstrak dari kode sumber aplikasi serta image container build dan mengirimkannya ke backend App Hosting. Backend App Hosting kemudian menggunakan informasi ini untuk menyiapkan Cloud Run dengan konfigurasi yang tepat.

Membangun kebijakan pembersihan

Firebase App Hosting menerapkan kebijakan retensi dan pembersihan build otomatis. Berdasarkan kebijakan ini, App Hosting mempertahankan build yang berhasil dan revisi Cloud Run terkait dari 14 hari terakhir. Selain itu, untuk memastikan Anda selalu memiliki build yang dapat di-roll back, App Hosting mempertahankan 5 build dan peluncuran yang berhasil paling baru, terlepas dari usianya.

App Hosting tidak akan pernah menghapus atau menghapus build yang saat ini berada dalam pemisahan traffic aktif Anda atau terkait dengan peluncuran yang sedang berlangsung.

Jika build lama melampaui batas retensi ini, status internalnya akan diperbarui menjadi EXPIRED. Anda tidak dapat melakukan rollback instan pada build EXPIRED dan opsi untuk melakukan rollback ke build ini akan dihapus dari konsol Firebase. Sebagai gantinya, Anda harus membuat build baru yang menargetkan sumber yang sama (baik commit git, container di Artifact Registry, atau bucket Google Cloud Storage) dan meluncurkannya.

Salah satu cara untuk menghemat resource build adalah dengan mengontrol seberapa sering Anda memicu peluncuran otomatis. Lihat cara mengelola peluncuran otomatis.

Pelajari lebih lanjut

Seluruh proses build App Hosting bersifat open source.