Buildpacks של Google Cloud הוא פרויקט בקוד פתוח שממיר את קוד המקור של האפליקציה לקובצי אימג' בקונטיינרים שמוכנים לייצור. ב-buildpacks שפורסמו על ידי Google Cloud מוטמע מפרט Cloud Native Buildpack, ותוכלו להיעזר בהם כדי לפתח ולהגדיר קונטיינרים שאפשר לפרוס ב- Google Cloud.
בדרך כלל ה-buildpack אחראי על רכיב השפה, ה-toolchain או רכיב אפליקציה (למשל Python, pip או שרת אינטרנט).
Buildpacks מקובצים יחד באוספים שנקראים builders שיכולים לנתח את קוד המקור של הפרויקט, ליצור תוכנית לפיתוח גרסת build וליצור קובץ אימג' בקונטיינר שמוכן לפריסה.
יצירת קונטיינרים באמצעות חבילות Buildpack
כשפורסים ומציגים את האפליקציה (שירות) או את הפונקציה במוצרים של Google Cloud Serverless, הקוד שלכם נארז בקונטיינר שאפשר להריץ באמצעות buildpacks. ב-Cloud Run, אפשר לפרוס קונטיינר שפותח מראש או לפרוס את קוד המקור כדי לאפשר ל-Cloud Run לנהל את גרסת ה-build של הקונטיינר. בפונקציות Cloud Run וב-App Engine, תהליך יצירת הקונטיינרים מנוהל באופן מלא, כלומר כשאתם פורסים את קוד המקור, כל האריזה וההמרה של קובץ אימג' של קונטיינר נעשים בשבילכם.
כל קובץ אימג' בקונטיינר מקבל גרסת build משלו שכוללת את כל הרכיבים הדרושים להפעלה של הפריסה, כולל קוד מקור, יחסי תלות של מערכת וספרייה, נתוני תצורה ונכסים סטטיים. כברירת מחדל, המוצרים של Google Cloud Serverless משתמשים באותם שירותים בסיסיים, כולל Cloud Build לצינור עיבוד הנתונים של הפריסה, ו-Container Registry או Artifact Registry לאחסון ולניהול של קובצי אימג' של קונטיינר.
כשמשתמשים ב-buildpacks ב-Google Cloud:
- ה-builders וה-buildpacks מוגדרים מראש כדי שיתאימו לתהליך ה-build ויוצרים קובצי אימג' בקונטיינר שאפשר להריץ.
- ה-buildpacks תומכים בכמה שפות תכנות ומזהים באופן אוטומטי את השפה שבה כתוב קוד המקור.
- אתם יכולים להתאים אישית ולהרחיב buildpacks כדי להתקין יחסי תלות נוספים במערכת, אבל ה-builder שמוגדר כברירת מחדל יכול לטפל במשימות נפוצות שנדרשות על ידי שפת התכנות, כולל התקנה של יחסי תלות ממאגר החבילות של השפה ושימוש בקובץ יחסי התלות הנפוצים בשפה.
שימוש ב-buildpacks כדי ליצור קונטיינרים לקוד שלכם
ניתן להשתמש ב-buildpacks באופן מקומי או מרחוק, בשביל:
בשפות תכנות שלא כוללות שיטות סטנדרטיות להפעלת אפליקציות, אפשר להשתמש ב-Procfile כדי להגדיר את תהליך ההפעלה כשהקונטיינר מתחיל.
אפשר להשתמש ב-Procfile כדי לשנות את תהליך ההתחלה שמוגדר כברירת מחדל בכל סוג של buildpacks, אבל חובה להשתמש בו בחלקם, כולל ב-Python.