יצירה והעברה בדחיפה של קובץ אימג' של Docker באמצעות Cloud Build
במדריך הזה תלמדו ליצור קובץ אימג' של Docker ולהעביר אותו בדחיפה ל-Artifact Registry, כדי להתחיל לעבוד עם Cloud Build. בעזרת Artifact Registry תוכלו לנהל חבילות פרטיות וקובצי אימג' לקונטיינרים של Docker, במקום מרכזי אחד.
קודם תיצרו את קובץ האימג' באמצעות Dockerfile, שהוא קובץ התצורה של Docker, ואז תיצרו את אותו קובץ אימג' באמצעות קובץ התצורה של Cloud Build.
בלחיצה על תראו לי איך תקבלו הסבר מפורט על המשימה ישירות ב-Cloud Shell Editor:
לפני שמתחילים
- נכנסים לחשבון 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.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build, Compute Engine and Artifact Registry APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. 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.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build, Compute Engine and Artifact Registry APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לבניית תמונת Docker ולדחיפתה אל Artifact Registry, צריך לבקש מהאדמין להקצות לחשבון השירות של Cloud Build את תפקידי ה-IAM הבאים:
- אדמין של Artifact Registry (
roles/artifactregistry.admin) - עריכה ב-Cloud Build (
roles/cloudbuild.builds.editor) - Logs Writer (
roles/logging.logWriter) - צפייה בקטגוריות באחסון (
roles/storage.bucketViewer) - משתמש באובייקטים באחסון (
roles/storage.objectUser)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
הכנת קובצי מקור ל-build
תצטרכו קוד מקור לדוגמה כדי לארוז אותו בקובץ אימג' של קונטיינר. בקטע הזה, תיצרו סקריפט מעטפת וקובץ Dockerfile. Dockerfile הוא מסמך טקסט שמכיל הוראות ל-Docker ליצירת קובץ אימג'.
פותחים חלון טרמינל.
יוצרים ספרייה חדשה בשם
quickstart-dockerועוברים אליה:mkdir quickstart-docker cd quickstart-dockerיוצרים קובץ בשם
quickstart.shעם התוכן הבא:יוצרים קובץ בשם
Dockerfileעם התוכן הבא:בחלון הטרמינל, מריצים את הפקודה הבאה כדי להפוך את
quickstart.shלקובץ הפעלה:chmod +x quickstart.sh
יצירת מאגר Docker ב-Artifact Registry
משתמשים בפקודה
gcloud artifacts repositories createכדי ליצור מאגר Docker בשםquickstart-docker-repoבמיקוםus-west2עם התיאור 'Docker repository':gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \ --location=us-west2 --description="Docker repository"מוודאים שהמאגר נוצר:
gcloud artifacts repositories listהרשימה של המאגרים שמוצגים צריכה לכלול את
quickstart-docker-repo.ב-Artifact Registry נעשה שימוש במוסכמה למתן שמות כדי לזהות מאגרים ותמונות. לדוגמה, כשמבצעים אינטראקציה עם תמונות Docker שמאוחסנות ב-Artifact Registry באזור
us-west2, משתמשים ב-us-west2-docker.pkg.devבתור שם המארח של הרישום בפקודות.
יצירת קובץ אימג' באמצעות קובץ Dockerfile
משתמשים בפקודה gcloud builds submit כדי ליצור קובץ אימג' של Docker באמצעות Dockerfile. לא צריך קובץ תצורה נפרד של Cloud Build.
מריצים את הפקודה הבאה כדי לקבל את מזהה הפרויקט Google Cloud :
gcloud config get-value projectמריצים את הפקודה הבאה מהספרייה שמכילה את
quickstart.shואתDockerfile:gcloud builds submit --region=us-west2 --tag us-west2-docker.pkg.dev/PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1אחרי שה-build יסתיים, הפלט אמור להיראות כך:
DONE ------------------------------------------------------------------------------------------------------------------------------------ ID CREATE_TIME DURATION SOURCE IMAGES STATUS 545cb89c-f7a4-4652-8f63-579ac974be2e 2020-11-05T18:16:04+00:00 16S gs://gcb-docs-project_cloudbuild/source/1604600163.528729-b70741b0f2d0449d8635aa22893258fe.tgz us-west2-docker.pkg.dev/gcb-docs-project/quickstart-docker-repo/quickstart-image:tag1 SUCCESS
הרגע יצרתם קובץ אימג' של Docker בשם quickstart-image באמצעות Dockerfile
והעברתם את קובץ האימג' בדחיפה ל-Artifact Registry.
יצירת תמונה באמצעות קובץ תצורת build
בקטע הזה משתמשים בקובץ הגדרות של Cloud Build כדי ליצור את אותו קובץ אימג' של Docker שנוצר בשלבים הקודמים. קובץ תצורת ה-build מורה ל-Cloud Build לבצע משימות על סמך המפרט שלכם.
באותה ספרייה שמכילה את
quickstart.shואתDockerfile, יוצרים קובץ בשםcloudbuild.yamlעם התוכן הבא. הקובץ הזה הוא קובץ תצורת ה-build. בזמן ה-build, מערכת Cloud Build מחליפה באופן אוטומטי את$PROJECT_IDבמזהה הפרויקט.מריצים את הפקודה הבאה כדי להתחיל את הבנייה:
gcloud builds submit --region=us-west2 --config cloudbuild.yamlאחרי שה-build יסתיים, הפלט אמור להיראות כך:
DONE ------------------------------------------------------------------------------------------------------------------------------------ ID CREATE_TIME DURATION SOURCE IMAGES STATUS 046ddd31-3670-4771-9336-8919e7098b11 2020-11-05T18:24:02+00:00 15S gs://gcb-docs-project_cloudbuild/source/1604600641.576884-8153be22c94d438aa86c78abf11403eb.tgz us-west2-docker.pkg.dev/gcb-docs-project/quickstart-docker-repo/quickstart-image:tag1 SUCCESS
הרגע יצרתם את quickstart-image באמצעות קובץ התצורה של ה-build והעברתם את קובץ האימג' בדחיפה ל-Artifact Registry.
הצגת פרטי גרסת ה-Build
פותחים את הדף Cloud Build במסוף Google Cloud .
אם צריך, בוחרים את הפרויקט ולוחצים על Open (פתיחה).
יוצג הדף היסטוריית בנייה:
אם צריך, בוחרים באפשרות
us-west2בתפריט הנפתח אזור כדי לראות את הגרסאות באזור הזה.יוצגו שני בילדים, אחד לכל אחד מהבילדים שהפעלתם במדריך הזה.
לוחצים על אחת מהגרסאות.
יוצג הדף Build details.
כדי לראות את הארטיפקטים של הבנייה, בקטע Build Summary (סיכום הבנייה), לוחצים על Build artifacts (ארטיפקטים של הבנייה).
הפלט אמור להיראות כך:
בדף הזה אפשר להוריד את יומן הבנייה ולראות את פרטי התמונה ב-Artifact Registry.
הסרת המשאבים
כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, פועלים לפי השלבים הבאים:
פותחים את הדף Artifact Registry במסוף Google Cloud .
בוחרים את הפרויקט ולוחצים על פתיחה.
בוחרים באפשרות quickstart-docker-repo.
לוחצים על Delete.
המאגר שיצרתם במסגרת המדריך למתחילים הזה נמחק.