תהליך ה-build של App Hosting

Firebase App Hosting משתמש ב-Cloud Build כדי להמיר את קוד המקור של האפליקציה לפורמט בקונטיינר שמתאים לפריסה ב-Cloud Run.

תהליך ה-build פועל לפי השלבים העיקריים הבאים:

  1. הטמעת נתונים: איסוף של קוד המקור וההגדרות של האפליקציה.

  2. Build: התקנה של יחסי התלות ויצירת האפליקציה.

  3. העברה: השלמת הקונטיינר Cloud Run בסביבת הייצור.

שלושת השלבים האלה תואמים ישירות לשלבים 1, 2 ו-3 של ה-build, כפי שמוצגים ב-Cloud Build במסוף Google Cloud:

צילום מסך של תצוגה של שלבי Cloud Build במסוף Google Cloud

שלב הטמעת הנתונים

השלב הזה אחראי לטיפול בלוגיקה של יצירת ה-build. הוא קורא, מנקה וכותב משתני סביבה שהוגדרו על ידי משתמשים. הוא גם מבטל את ההפניות ומוצמדת את כל הסודות שצוינו בקובץ apphosting.yaml.

שלב ה-build

זהו הליבה של תהליך ה-build, והוא אחראי ליצירת קובץ אימג' בקונטיינר שאפשר להריץ וקובץ bundle.yaml שמגדיר את תצורת ה-build. הוא משתמש ב-Cloud Native Buildpacks כדי לארוז את האפליקציה ביעילות. מידע נוסף על הקובץ bundle.yaml זמין ב-github.

‏Buildpacks אחראים על המרת קוד המקור של האפליקציה לקובצי אימג' בקונטיינרים שמוכנים לייצור. Firebase App Hosting שרשר כמה buildpacks כדי להשלים את תהליך ה-build:

  1. Runtime Buildpack: מוודא שכל הרכיבים הנדרשים להפעלת אפליקציית Node.js בסיסית כלולים, ויחסי התלות מותקנים.
  2. Monorepo Buildpack: מגדיר buildpacks הבאים כדי לטפל בתרחישים שונים של monorepo.
  3. Framework Buildpack: מתקין את המתאם הנכון של המסגרת (כמו Angular או Next.js) ומכין את ה-buildpacks הבאים.

    מתאמי המסגרות אחראים להרצת הפקודה build לצורכי ייצור ולמיפוי של ערכי תצורה רלוונטיים ספציפיים למסגרת לפורמט סטנדרטי ש-App Hosting יכול לקרוא.

  4. Package Manager Buildpack: מבצע את התקנת יחסי התלות ויוצר את האפליקציה באמצעות npm,‏ yarn או pnpm.

  5. Output Bundle Buildpack: מגדיר את פקודת ההפעלה ומכין את חבילת הפלט להפעלה.

שלב ההעברה

בשלב האחרון הזה, כל המידע שחולץ מקוד המקור של האפליקציה וגם קובץ האימג' בקונטיינר של ה-build נארזים ונשלחים לקצה העורפי של App Hosting. לאחר מכן, הקצה העורפי של App Hosting משתמש במידע הזה כדי להגדיר את Cloud Run עם ההגדרות המתאימות.

מידע נוסף

כל תהליך ה-build של App Hosting הוא בקוד פתוח.