Firebase App Hosting از Cloud Build برای تبدیل کد منبع برنامه شما به قالب کانتینری مناسب برای استقرار در Cloud Run استفاده میکند.
فرایند ساخت ازطریق مراحل کلیدی زیر عمل میکند:
ubuntu: مقداردهی اولیه Workspace.
آمادهساز: کد منبع و پیکربندی برنامه شما را جمعآوری میکند.
pre-buildpack: محیط buildpack را آماده میکند.
build: وابستگیها را نصب میکند و برنامهتان را میسازد.
ناشر: محفظه تولید Cloud Run را نهایی میکند.
این پنج مرحله مستقیماً با مراحل ساخت مطابقت دارند، همانطور که در Cloud Build در کنسول Google Cloud نمایش داده شده است:

مقداردهی اولیه Workspace
این مرحله با مرحله ساخت ubuntu مطابقت دارد. این دستور فضای کاری ساخت را مقداردهی اولیه میکند و مطمئن میشود که اجازههای فایل صحیح برای دایرکتوریهای مورداستفاده در مراحل ساخت بعدی تنظیم شده است.
آمادهکننده
این مرحله مسئول رسیدگی به منطق پیشساخت است. این ابزار متغیرهای محیطی تعریفشده توسط کاربر را میخواند، پاکسازی میکند، و مینویسد. همچنین هرگونه اطلاعات محرمانه مشخصشده در فایل apphosting.yaml را ارجاعزدایی و سنجاق میکند.
Pre-buildpack
این مرحله محیط را برای چرخه حیات Cloud Native Buildpacks آماده میکند. این شامل اجرای یک شیم است که پیکربندیها و متغیرهای محیطی آمادهشده در مرحله قبلی را به قالبی که ابزارهای CNB انتظار دارند ترجمه میکند.
ساخت
این هسته فرایند ساخت است که مسئول تولید تصویر محفظه قابلاجرا و فایل bundle.yaml است که پیکربندی ساخت شما را تعریف میکند.
این ابزار از Cloud Native Buildpacks
و باینری lifecycle creator
برای بستهبندی کارآمد
برنامه استفاده میکند. اطلاعات بیشتر درباره فایل bundle.yaml را میتوانید در
GitHub پیدا کنید.
Buildpacks مسئول تبدیل کد منبع برنامه شما به تصاویر محفظه آماده تولید است. Firebase App Hosting چندین بسته ساخت را بههم زنجیر میکند تا فرایند ساخت را تکمیل کند:
- Runtime Buildpack: مطمئن میشود که همه مؤلفههای لازم برای اجرای برنامه Node.js پایه اضافه شدهاند و وابستگیها نصب شدهاند.
- Monorepo Buildpack: بستههای ساخت بعدی را برای مدیریت سناریوهای مختلف تکمخزن پیکربندی میکند.
Framework Buildpack: آداپتور چارچوب صحیح (مانند Angular یا Next.js) را نصب میکند و بستههای ساخت بعدی را آماده میکند.
آداپتورهای چارچوب مسئول اجرای فرمان ساخت تولیدی و نگاشت هرگونه مقدار پیکربندی مربوطه مختص چارچوب به قالب استاندارد قابلخواندن توسط App Hosting هستند.
Package Manager Buildpack: نصب وابستگیها را اجرا میکند و برنامه را بااستفاده از npm، yarn، یا pnpm میسازد.
Output Bundle Buildpack: فرمان اجرا را تعریف میکند و بسته خروجی را برای اجرا آماده میکند.
ناشر
این مرحله نهایی همه اطلاعات استخراجشده از کد منبع برنامه بهعلاوه تصویر محفظه ساخت را بستهبندی میکند و آن را به باطن App Hosting ارسال میکند. سپس بااستفاده از این اطلاعات، باطن App Hosting Cloud Run را با پیکربندیهای مناسب راهاندازی میکند.
خطمشی پاکسازی ساخت
Firebase App Hosting خطمشی نگهداری و پاکسازی ساخت خودکارسازیشده را اعمال میکند. طبق این خطمشی، App Hosting ساختهای موفق شما و Cloud Run بازبینیهای مرتبط با آنها را از ۱۴ روز گذشته حفظ میکند. علاوهبراین، برای اطمینان از اینکه همیشه ساختی برای بازگشت به آن داشته باشید، App Hosting ۵ ساخت و عرضه موفق اخیر شما را صرفنظر از سنشان حفظ میکند.
App Hosting ساختهایی را که درحالحاضر در توزیع ترافیک فعال شما هستند یا با عرضه درحال انجام مرتبط هستند حذف یا برکنار نمیکند.
وقتی ساختهای قدیمیتر از این حدود نگهداری فراتر میروند، وضعیت داخلی آنها به EXPIRED بهروز میشود. نمیتوانید در ساخت EXPIRED بازگشت فوری انجام دهید و گزینه بازگشت به این ساختها از کنسول Firebase برداشته خواهد شد. درعوض، باید
ساخت جدیدی را با هدف قرار دادن همان منبع ایجاد کنید
(یا یک git commit،
یک محفظه در Artifact Registry، یا یک Google Cloud Storage bucket) و آن را
عرضه کنید.
یکی از راههای حفظ منابع ساخت، کنترل تعداد دفعات راهاندازی عرضه خودکار است. مدیریت عرضه خودکار را ببینید.
بیشتر بدانید
کل فرایند ساخت App Hosting متنباز است.
- کد buildpack در مخزن Google Cloud buildpacks قرار دارد
- کد آداپتورهای چارچوب در مخزن apphosting-adapters قرار دارد
- درباره Cloud Native buildpacks و Cloud Build بیشتر بدانید