יצירה והעברה בדחיפה של קובץ אימג' של Docker באמצעות Cloud Build

במדריך הזה תלמדו ליצור קובץ אימג' של Docker ולהעביר אותו בדחיפה ל-Artifact Registry, כדי להתחיל לעבוד עם Cloud Build. בעזרת Artifact Registry תוכלו לנהל חבילות פרטיות וקובצי אימג' לקונטיינרים של Docker, במקום מרכזי אחד.

קודם תיצרו את קובץ האימג' באמצעות Dockerfile, שהוא קובץ התצורה של Docker, ואז תיצרו את אותו קובץ אימג' באמצעות קובץ התצורה של Cloud Build.


בלחיצה על תראו לי איך תקבלו הסבר מפורט על המשימה ישירות ב-Cloud Shell Editor:

תראו לי איך


לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. 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.

  4. Verify that billing is enabled for your Google Cloud project.

  5. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  6. התקינו את ה-CLI של Google Cloud.

  7. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  8. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  9. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  10. 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.

  11. Verify that billing is enabled for your Google Cloud project.

  12. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  13. התקינו את ה-CLI של Google Cloud.

  14. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  15. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות לבניית תמונת Docker ולדחיפתה אל Artifact Registry, צריך לבקש מהאדמין להקצות לחשבון השירות של Cloud Build את תפקידי ה-IAM הבאים:

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

הכנת קובצי מקור ל-build

תצטרכו קוד מקור לדוגמה כדי לארוז אותו בקובץ אימג' של קונטיינר. בקטע הזה, תיצרו סקריפט מעטפת וקובץ Dockerfile. Dockerfile הוא מסמך טקסט שמכיל הוראות ל-Docker ליצירת קובץ אימג'.

  1. פותחים חלון טרמינל.

  2. יוצרים ספרייה חדשה בשם quickstart-docker ועוברים אליה:

    mkdir quickstart-docker
    cd quickstart-docker
    
  3. יוצרים קובץ בשם quickstart.sh עם התוכן הבא:

    #!/bin/sh
    echo "Hello, world! The time is $(date)."
  4. יוצרים קובץ בשם Dockerfile עם התוכן הבא:

    FROM alpine
    COPY quickstart.sh /
    CMD ["/quickstart.sh"]
  5. בחלון הטרמינל, מריצים את הפקודה הבאה כדי להפוך את quickstart.sh לקובץ הפעלה:

    chmod +x quickstart.sh
    

יצירת מאגר Docker ב-Artifact Registry

  1. משתמשים בפקודה 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"
    
  2. מוודאים שהמאגר נוצר:

    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.

  1. מריצים את הפקודה הבאה כדי לקבל את מזהה הפרויקט Google Cloud :

    gcloud config get-value project
    
  2. מריצים את הפקודה הבאה מהספרייה שמכילה את 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 לבצע משימות על סמך המפרט שלכם.

  1. באותה ספרייה שמכילה את quickstart.sh ואת Dockerfile, יוצרים קובץ בשם cloudbuild.yaml עם התוכן הבא. הקובץ הזה הוא קובץ תצורת ה-build. בזמן ה-build, מערכת Cloud Build מחליפה באופן אוטומטי את $PROJECT_ID במזהה הפרויקט.

    steps:
    - name: 'gcr.io/cloud-builders/docker'
      script: |
        docker build -t us-west2-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1 .
      automapSubstitutions: true
    images:
    - 'us-west2-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1'
  2. מריצים את הפקודה הבאה כדי להתחיל את הבנייה:

    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

  1. פותחים את הדף Cloud Build במסוף Google Cloud .

    כניסה לדף Cloud Build

  2. אם צריך, בוחרים את הפרויקט ולוחצים על Open (פתיחה).

    יוצג הדף היסטוריית בנייה:

    צילום מסך של הדף 'היסטוריית הבנייה'

  3. אם צריך, בוחרים באפשרות us-west2בתפריט הנפתח אזור כדי לראות את הגרסאות באזור הזה.

    יוצגו שני בילדים, אחד לכל אחד מהבילדים שהפעלתם במדריך הזה.

  4. לוחצים על אחת מהגרסאות.

    יוצג הדף Build details.

  5. כדי לראות את הארטיפקטים של הבנייה, בקטע Build Summary (סיכום הבנייה), לוחצים על Build artifacts (ארטיפקטים של הבנייה).

    הפלט אמור להיראות כך:

    צילום מסך של פריטי מידע שנוצרו בתהליך פיתוח (Artifact)

    בדף הזה אפשר להוריד את יומן הבנייה ולראות את פרטי התמונה ב-Artifact Registry.

הסרת המשאבים

כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, פועלים לפי השלבים הבאים:

  1. פותחים את הדף Artifact Registry במסוף Google Cloud .

    פתיחת הדף Artifact Registry

  2. בוחרים את הפרויקט ולוחצים על פתיחה.

  3. בוחרים באפשרות quickstart-docker-repo.

  4. לוחצים על Delete.

המאגר שיצרתם במסגרת המדריך למתחילים הזה נמחק.

המאמרים הבאים