Builders הן גרסאות של קובצי אימג' שמכילים את כל הרכיבים הדרושים כדי ליצור קונטיינר שאפשר להריץ. כל גרסת builder מבוססת על קובץ אימג' בסיסי להפצה לפי מערכת הפעלה ספציפית, למשל Ubuntu 22, ותומך בכמה גרסאות בהתאם לשפת התכנות.
יכול להיות שתצטרכו להתאים אישית את גרסת ה-build במקרים הבאים:
- אם יש תלות במערכת הפעלה ספציפית שזמינה רק בגרסת build מסוימת.
- אם יש צורך בגרסה ספציפית של שפת תכנות שזמינה רק בגרסת builder מסוימת.
גרסאות build מקומיות
כדי לעבוד עם גרסאות build מקומיות צריך להתקין את Pack CLI ואת Docker.
לפני שמתחילים
- מתקינים את Docker Community Edition (CE) בתחנת העבודה. Docker משמש את
packליצירת קובצי אימג' של OCI. - מתקינים את Pack CLI.
- מתקינים את הכלי Git source control כדי שתהיה אפשרות לטעון אפליקציות לדוגמה מ-GitHub.
ציון גרסת ה-build באמצעות pack
תוכלו להוסיף את הדגל --builder לפקודת ה-pack כדי לציין את גרסת ה-build שבה אתם רוצים להשתמש:
pack build SERVICE_IMAGE_NAME --builder=BUILDER_IMAGE_URL
מחליפים את:
BUILDER_IMAGE_URLבכתובת ה-URL של ה-builder. לדוגמה:gcr.io/buildpacks/builder:google-24SERVICE_IMAGE_NAMEבשם שבחרתם לקובץ האימג' של האפליקציה.
מידע נוסף על הפקודה pack זמין במסמכי התיעוד של CLI.
ציון גרסת ה-build באמצעות project.toml
כשאתם עובדים עם pack, אפשר להשתמש במתאר פרויקט (project.toml) של buildpacks כדי להגדיר ה-builder.
- בתיקיית השורש של האפליקציה, יוצרים קובץ בשם
project.tomlעם ההגדרות הבאות:[build] builder = "BUILDER_IMAGE_URL"
-
מריצים את הפקודה 'pack' כדי ליצור את האפליקציה:
pack build SERVICE_IMAGE_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
BUILDER_IMAGE_URL: כתובת ה-URL של ה-builder, לדוגמה,gcr.io/buildpacks/builder:google-24 -
SERVICE_IMAGE_NAME: השם שבחרתם לקובץ האימג' של האפליקציה.
פיתוח גרסאות build מרחוק
כדי להשתמש ב-builder ספציפי ב-Cloud Build אתם יכולים להוסיף את הדגל --pack בזמן שליחת הפרויקט.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build and Artifact Registry APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build and Artifact Registry APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init - מוודאים שלפרויקט Google Cloud יש גישה למאגר קובצי אימג' של קונטיינר.
כדי להגדיר גישה למאגר Docker ב-Artifact Registry:
- יוצרים מאגר Docker חדש באותו מיקום של הפרויקט Google Cloud .
מחליפים את:gcloud artifacts repositories create REPO_NAME \ --repository-format=docker \ --location=REGION --description="DESCRIPTION"
REPO_NAMEבשם שבחרתם למאגר ב-Docker.-
REGIONעם המיקום בפרויקט או במיקום הקרוב ביותר למיקום הפרויקט. Google Cloud DESCRIPTIONבתיאור כלשהו.
לדוגמה, כדי ליצור מאגר
dockerב-us-west2שהתיאור שלו הוא 'Docker repository', מריצים את הפקודה:gcloud artifacts repositories create buildpacks-docker-repo --repository-format=docker \ --location=us-west2 --description="Docker repository"
- מוודאים שהמאגר נוצר:
gcloud artifacts repositories list
השם שבחרתם למאגר Docker אמור להופיע ברשימה.
- יוצרים מאגר Docker חדש באותו מיקום של הפרויקט Google Cloud .
בניית האפליקציה באמצעות builder ספציפי
- שולחים את קוד המקור של האפליקציה ל-Cloud Build באמצעות
gcloud:gcloud builds submit --pack builder=BUILDER_IMAGE_URL,image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/SERVICE_IMAGE_NAME
מחליפים את:
BUILDER_IMAGE_URLבכתובת ה-URL של ה-builder. לדוגמה:gcr.io/buildpacks/builder:google-24LOCATIONבשם האזור של מאגר הקונטיינרים. לדוגמה:us-west2-docker.pkg.devPROJECT_IDבמזהה הפרויקט. Google CloudREPO_NAMEבשם המאגר ב-Docker.SERVICE_IMAGE_NAMEבשם של קובץ אימג' של קונטיינר שיצרתם.
מידע נוסף על הפקודה
submitזמין במסמכי התיעוד של Cloud Build. -
מוודאים שהאפליקציה לדוגמה פורסמה ב-
REPO_NAME:gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME
מחליפים את:
LOCATIONבשם האזור של מאגר הקונטיינרים. לדוגמה:us-west2-docker.pkg.devPROJECT_IDבמזהה הפרויקט. Google CloudREPO_NAMEבשם המאגר ב-Docker.
פריסה מקוד המקור באמצעות Cloud Run
כשאתם פורסים מקוד המקור עם Cloud Run, אפשר להשתמש בקובץ מתאר פרויקט (למשל project.toml) של buildpacks כדי להגדיר את ה-builder.
- מאתחלים קובץ
project.tomlבתיקיית השורש של האפליקציה ומדביקים בו את ההגדרות הבאות:[build] builder = "BUILDER_IMAGE_URL"
-
פורסים את האפליקציה מקוד המקור
gcloud run deploy --source . SERVICE_IMAGE_NAME
מחליפים את:
BUILDER_IMAGE_URLבכתובת ה-URL של ה-builder. לדוגמה:gcr.io/buildpacks/builder:google-24SERVICE_IMAGE_NAMEבשם של קובץ אימג' של קונטיינר שיצרתם.