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

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

תהליך ה-build מתבצע בשלבים העיקריים הבאים:

  1. ubuntu: הפעלה ראשונית של Workspace.

  2. הכנה: איסוף קוד המקור וההגדרות של האפליקציה.

  3. pre-buildpack: מכין את סביבת ה-buildpack.

  4. build: מתקין את יחסי התלות ובונה את האפליקציה.

  5. המוציא לאור: מסיים את מאגר התגים Cloud Run בסביבת הייצור.

חמשת השלבים האלה תואמים ישירות לשלבי הבנייה שמוצגים ב-Cloud Build במסוף Google Cloud:

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

אתחול של Workspace

השלב הזה תואם לשלב הבנייה של Ubuntu. היא מאתחלת את סביבת העבודה של הבנייה, ומוודאת שהרשאות הקובץ הנכונות מוגדרות לספריות שמשמשות את שלבי הבנייה הבאים.

מכין

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

Pre-buildpack

בשלב הזה מכינים את הסביבה למחזור החיים של Cloud Native Buildpacks. התהליך כולל הפעלה של shim שמתרגם את ההגדרות ואת משתני הסביבה שהוכנו בשלב הקודם לפורמט שנדרש על ידי כלי ה-CNB.

פיתוח פתרונות

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

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

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

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

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

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

בעל תוכן דיגיטלי

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

מידע נוסף

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