איך יוצרים מקורות לקונטיינרים

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

תרחישים נפוצים לדוגמה שבהם כדאי להפריד בין פעולות הבנייה והפריסה:

  • שילוב ופריסה רציפים (CI/CD): מפתחים כותבים קוד ומעבירים אותו למאגר קוד מקור. מערכת CI/CD יוצרת באופן אוטומטי קונטיינר מקוד המקור הזה, מריצה בדיקות ופורסת אותו באופן אוטומטי בסביבת הכנה.
  • תשתית בתור קוד: משאבי Cloud Run שמנוהלים באמצעות YAML או Terraform מפנים לכתובת URL של קובץ אימג' של קונטיינר. קוד המקור שנכתב על ידי מפתחים צריך להפוך לקובץ אימג' של קונטיינר.

אתם יכולים להשתמש בכל מערכת שתרצו כדי ליצור מאגר תגים. בדף הזה מוסבר על הדרכים הבאות לשימוש ב-Cloud Build כדי ליצור קובצי אימג' של קונטיינרים:

דרישות לשירותי Cloud Run

בשירותי Cloud Run, אפשר להשתמש בקובצי אימג' של קונטיינרים שנוצרו באמצעות כל כלי שיכול ליצור קובצי אימג' של קונטיינרים, כל עוד הם עומדים בדרישות של הסכם הקונטיינר. בפרט, הקוד צריך להאזין לבקשות HTTP ביציאה שמוגדרת על ידי משתנה הסביבה PORT. משתנה הסביבה PORT מוזרק אוטומטית על ידי Cloud Run לקונטיינר.

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

יצירה באמצעות קובץ Docker

לפני שיוצרים גרסת build של מקורות מקומיים בקובץ אימג' של קונטיינר (תהליך שנקרא 'קונטיינריזציה') באמצעות Docker או Cloud Build, צריך לוודא שקיים Dockerfile לצד המקורות. הדוגמאות של Hello World כוללות אפליקציות לדוגמה וקבצי Dockerfile בשפות פופולריות רבות.

אם אתם משתמשים ב-Dockerfiles, אתם יכולים להשתמש באחת מהשיטות הבאות כדי לבצע build:

  • פיתוח באמצעות Cloud Build
  • פיתוח גרסת build באופן מקומי באמצעות Docker

פיתוח באמצעות Cloud Build

אפשר ליצור את קובץ האימג' ב- Google Cloud באמצעות Cloud Build:

  1. עוברים לתיקייה שמכילה את המקורות ואת קובץ ה-Dockerfile.

  2. מריצים את הפקודה:

    gcloud builds submit --tag IMAGE_URL

    מחליפים את IMAGE_URL בהפניה לקובץ אימג' של קונטיינר, לדוגמה, us-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, צריך ליצור מראש את המאגר REPO_NAME. כתובת ה-URL היא בפורמט LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

טיפים לשיפור הביצועים של ה-build מפורטים במאמר האצת ה-build.

פיתוח מקומי והעברה בדחיפה באמצעות Docker

אם התקנתם את Docker באופן מקומי, אתם יכולים להשתמש ב-docker build במקום ב-Cloud Build או ב-buildpacks של Google Cloud.

כדי ליצור את קובץ האימג' של הקונטיינר באמצעות Docker:

  1. עוברים לתיקייה שמכילה את המקורות ואת Dockerfile.

  2. מריצים את הפקודה:

    docker build . --tag IMAGE_URL

    מחליפים את IMAGE_URL בהפניה לקובץ אימג' של קונטיינר, לדוגמה, us-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, צריך ליצור מראש את המאגר REPO_NAME. כתובת ה-URL היא בפורמט LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

    שימו לב: אם אתם משתמשים במחשב Mac עם סיליקון של אפל, אתם צריכים לציין --platform linux/amd64 בשורה של הפקודה.

  3. מעבירים בדחיפה את קובץ האימג' של הקונטיינר למאגר נתמך של קונטיינרים:

    docker push IMAGE_URL

    מחליפים את IMAGE_URL בהפניה לקובץ אימג' של קונטיינר, לדוגמה, us-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, צריך ליצור מראש את המאגר REPO_NAME. כתובת ה-URL היא בפורמט LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

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

יצירת build באמצעות buildpacks של Google Cloud

Buildpacks של Google Cloud הוא אוסף של Buildpacks שתואמים ל-CNCF, שיוצרים קוד מקור לקובצי אימג' של קונטיינרים שמיועדים להפעלה בפלטפורמות של קונטיינרים, כולל Cloud Run. Google Cloud

רשימת השפות הנתמכות מופיעה במסמכי התיעוד של buildpacks של Google Cloud

פיתוח באמצעות buildpacks של Google Cloud באמצעות Cloud Build

כדי לבצע build באמצעות buildpacks של Google Cloud:

  1. עוברים לתיקייה שמכילה את המקורות.

  2. מריצים את הפקודה:

    gcloud builds submit --pack image=IMAGE_URL

    מחליפים את IMAGE_URL בהפניה לקובץ אימג' של קונטיינר, לדוגמה, us-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, צריך ליצור מראש את המאגר REPO_NAME. כתובת ה-URL היא בפורמט LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

  3. מחכים לסיום ה-build.

יצירת build באמצעות buildpacks של Google Cloud באמצעות שורת הפקודה pack

כדי לבצע build באמצעות הפקודה pack:

  1. אם עדיין לא עשיתם זאת, מתקינים את Docker.

  2. אם עדיין לא עשיתם זאת, מתקינים את pack.

  3. עוברים לתיקייה שמכילה את המקורות.

  4. מריצים את הפקודה הבאה כדי ליצור את קובץ האימג' בקונטיינר ולדחוף אותו למאגר קונטיינרים נתמך:

    pack build --publish IMAGE_URL

    מחליפים את IMAGE_URL בהפניה לקובץ אימג' של קונטיינר, לדוגמה, us-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, צריך ליצור מראש את המאגר REPO_NAME. כתובת ה-URL היא בפורמט LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

  5. ממתינים עד שהפעולה pack תסתיים.

מידע נוסף זמין בהוראות שבקטע פיתוח אפליקציה.

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