Firebase App Hosting, uygulama kaynak kodunuzu Cloud Run'de dağıtıma uygun, kapsayıcılı bir biçime dönüştürmek için Cloud Build'den yararlanır.
Derleme işlemi aşağıdaki temel aşamalardan oluşur:
ubuntu: Workspace başlatma.
hazırlayıcı: Uygulama kaynak kodunuzu ve yapılandırmanızı toplar.
pre-buildpack: Buildpack ortamını hazırlar.
build: Bağımlılıkları yükler ve uygulamanızı oluşturur.
publisher: Üretim Cloud Run kapsayıcısını tamamlar.
Bu beş adım, Google Cloud konsolunda Cloud Build içinde gösterilen derleme adımlarına doğrudan karşılık gelir:

Workspace başlatma
Bu aşama, ubuntu derleme adımına karşılık gelir. Derleme çalışma alanını başlatır ve sonraki derleme adımlarında kullanılan dizinler için doğru dosya izinlerinin ayarlanmasını sağlar.
Hazırlayan
Bu aşama, derleme öncesi mantığı işlemekten sorumludur. Kullanıcı tanımlı ortam değişkenlerini okur, temizler ve yazar. Ayrıca, apphosting.yaml dosyasında belirtilen tüm sırların referansını kaldırır ve bunları sabitler.
Önceden derleme paketi
Bu adım, ortamı Cloud Native Buildpacks yaşam döngüsüne hazırlar. Bu işlem, önceki aşamada hazırlanan yapılandırmaları ve ortam değişkenlerini CNB araçlarının beklediği biçime çeviren bir ara katman çalıştırmayı içerir.
Derleme
Bu, derleme sürecinin temelidir. Çalıştırılabilir bir kapsayıcı görüntüsü ve derleme yapılandırmanızı tanımlayan bir bundle.yaml dosyası oluşturmaktan sorumludur.
Uygulamayı verimli bir şekilde paketlemek için Cloud Native Buildpacks ve lifecycle creator ikilisini kullanır. bundle.yaml dosyası hakkında daha fazla bilgiyi GitHub'da bulabilirsiniz.
Buildpack'ler, uygulama kaynak kodunuzu üretime hazır kapsayıcı görüntülerine dönüştürmekten sorumludur. Firebase App Hosting, derleme sürecini tamamlamak için çeşitli derleme paketlerini birbirine bağlar:
- Runtime Buildpack: Temel bir Node.js uygulamasını çalıştırmak için gereken tüm bileşenlerin dahil edilmesini ve bağımlılıkların yüklenmesini sağlar.
- Monorepo Buildpack: Sonraki buildpack'leri farklı monorepo senaryolarını işleyecek şekilde yapılandırır.
Framework Buildpack: Doğru framework bağdaştırıcısını (ör. Angular veya Next.js) yükler ve sonraki buildpack'leri hazırlar.
Çerçeve bağdaştırıcıları, üretim için hazır hale getirilmiş derleme komutunu çalıştırmaktan ve ilgili çerçeveye özgü yapılandırma değerlerini App Hosting tarafından okunabilir standart bir biçime eşlemekten sorumludur.
Package Manager Buildpack: Bağımlılıkların yüklenmesini yürütür ve uygulamayı npm, yarn veya pnpm kullanarak oluşturur.
Çıkış Paketi Oluşturma Paketi: Çalıştırma komutunu tanımlar ve çıkış paketini yürütmeye hazırlar.
Yayıncı
Bu son aşamada, uygulama kaynak kodundan çıkarılan tüm bilgiler, derleme kapsayıcı görüntüsüyle birlikte paketlenir ve App Hosting arka ucuna gönderilir. App Hosting arka ucu daha sonra bu bilgileri kullanarak Cloud Run'ı uygun yapılandırmalarla ayarlar.
Temizleme politikası oluşturma
Firebase App Hosting Otomatik derleme saklama ve temizleme politikası uygular. Bu politika kapsamında, App Hosting, son 14 güne ait başarılı derlemelerinizi ve bunlarla ilişkili Cloud Run düzeltmelerinizi saklar. Ayrıca, her zaman geri dönebileceğiniz bir derleme olmasını sağlamak için App Hosting, yaşına bakılmaksızın en son başarılı olan 5 derlemenizi ve dağıtımınızı saklar.
App Hosting, etkin trafik dağıtımınızda bulunan veya devam eden bir dağıtımla ilişkili olan derlemeleri asla silmez ya da kaldırmaz.
Eski derlemeler bu saklama sınırlarını aştığında dahili durumları EXPIRED olarak güncellenir. EXPIRED derlemelerinde anında geri alma işlemi gerçekleştiremezsiniz ve bu derlemelere geri dönme seçeneği Firebase konsolundan kaldırılır. Bunun yerine, aynı kaynağı hedefleyen yeni bir derleme oluşturmanız (Git commit'i, Artifact Registry içindeki bir kapsayıcı veya Google Cloud Storage grubu) ve bu derlemeyi kullanıma sunmanız gerekir.
Derleme kaynaklarını korumanın bir yolu, otomatik dağıtımları ne sıklıkta tetiklediğinizi kontrol etmektir. Otomatik kullanıma sunma işlemlerini yönetme başlıklı makaleyi inceleyin.
Daha fazla bilgi
Tüm App Hosting derleme işlemi açık kaynaktır.
- Buildpack kodu, Google Cloud buildpack deposunda bulunur.
- Çerçeve bağdaştırıcılarının kodu firebase-framework-tools deposunda bulunur.
- Cloud Native buildpack'leri ve Cloud Build hakkında daha fazla bilgi