App Hosting derleme süreci

Firebase App Hosting, uygulama kaynak kodunuzu Cloud Run üzerinde 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:

  1. ubuntu: Workspace başlatma.

  2. preparer: Uygulama kaynak kodunuzu ve yapılandırmanızı toplar.

  3. pre-buildpack: Buildpack ortamını hazırlar.

  4. build: Bağımlılıkları yükler ve uygulamanızı oluşturur.

  5. 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:

Cloud Build adımlarının Google Cloud Console görünümünün ekran görüntüsü

Workspace başlatma

Bu aşama, ubuntu derleme adımına karşılık gelir. Bu komut, 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.

Pre-buildpack

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 container görüntülerine dönüştürmekten sorumludur. Firebase App Hosting, derleme işlemini tamamlamak için birkaç buildpack'i birbirine bağlar:

  1. Runtime Buildpack: Temel bir Node.js uygulamasının çalıştırılması için gereken tüm bileşenlerin dahil edilmesini ve bağımlılıkların yüklenmesini sağlar.
  2. Monorepo Buildpack: Sonraki buildpack'leri farklı monorepo senaryolarını işleyecek şekilde yapılandırır.
  3. 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ı, üretime hazır hale getirilmiş derleme komutunu çalıştırmaktan ve ilgili çerçeveye özgü yapılandırma değerlerini App Hosting tarafından okunabilen standart bir biçime eşlemekten sorumludur.

  4. Package Manager Buildpack: Bağımlılıkların yüklenmesini yürütür ve uygulamayı npm, yarn veya pnpm kullanarak oluşturur.

  5. Çı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 ve derleme kapsayıcı görüntüsü paketlenir ve App Hosting arka uca gönderilir. App Hosting arka ucu daha sonra bu bilgileri kullanarak Cloud Run'i uygun yapılandırmalarla ayarlar.

Temizleme politikası oluşturma

Firebase App Hosting Otomatik derleme saklama ve temizleme politikasını zorunlu kılar. 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 kullanıma sunma işleminizi saklar.

App Hosting, etkin trafik dağıtımınızda bulunan veya devam eden bir kullanıma sunma işlemiyle 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 paketi) 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

App Hosting derleme işleminin tamamı açık kaynaktır.