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 לקונטיינר.
לפני שמתחילים
כדי להריץ חלק מהפקודות שבדף הזה, צריך Google Cloud CLI.
יוצרים מאגר במאגר קונטיינרים נתמך. כדי ליצור מאגר ב-Artifact Registry, מריצים את הפקודה:
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=LOCATION \ --description="DESCRIPTION" \ --immutable-tags \ --asyncאתם יכולים להגדיר את Docker כך שתהיה לו גישה ל-Artifact Registry באמצעות כלי העזר של פרטי הכניסה של ה-CLI של gcloud:
מחליפים אתgcloud auth configure-docker LOCATION-docker.pkg.dev
LOCATIONבשם האזור של מאגר הקונטיינרים, לדוגמה,us-west2.
יצירה באמצעות קובץ Docker
לפני שיוצרים גרסת build של מקורות מקומיים בקובץ אימג' של קונטיינר (תהליך שנקרא 'קונטיינריזציה') באמצעות Docker או Cloud Build, צריך לוודא שקיים Dockerfile לצד המקורות. הדוגמאות של Hello World כוללות אפליקציות לדוגמה וקבצי Dockerfile בשפות פופולריות רבות.
אם אתם משתמשים ב-Dockerfiles, אתם יכולים להשתמש באחת מהשיטות הבאות כדי לבצע build:
- פיתוח באמצעות Cloud Build
- פיתוח גרסת build באופן מקומי באמצעות Docker
פיתוח באמצעות Cloud Build
אפשר ליצור את קובץ האימג' ב- Google Cloud באמצעות Cloud Build:
עוברים לתיקייה שמכילה את המקורות ואת קובץ ה-Dockerfile.
מריצים את הפקודה:
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:
עוברים לתיקייה שמכילה את המקורות ואת
Dockerfile.מריצים את הפקודה:
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בשורה של הפקודה.מעבירים בדחיפה את קובץ האימג' של הקונטיינר למאגר נתמך של קונטיינרים:
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:
עוברים לתיקייה שמכילה את המקורות.
מריצים את הפקודה:
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.מחכים לסיום ה-build.
יצירת build באמצעות buildpacks של Google Cloud באמצעות שורת הפקודה pack
כדי לבצע build באמצעות הפקודה pack:
אם עדיין לא עשיתם זאת, מתקינים את Docker.
אם עדיין לא עשיתם זאת, מתקינים את
pack.עוברים לתיקייה שמכילה את המקורות.
מריצים את הפקודה הבאה כדי ליצור את קובץ האימג' בקונטיינר ולדחוף אותו למאגר קונטיינרים נתמך:
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.ממתינים עד שהפעולה
packתסתיים.
מידע נוסף זמין בהוראות שבקטע פיתוח אפליקציה.
המאמרים הבאים
כדי לפרוס את הקונטיינרים שבניתם ב-Cloud Run, פועלים לפי ההוראות במאמר פריסת שירותים.
איך יוצרים ומעדכנים משימות של Cloud Run מקובץ האימג' של הקונטיינר שנוצר.
אחרי שיוצרים את הקונטיינר, אפשר לבדוק אותו באופן מקומי לפני הפריסה ב-Cloud Run. מידע נוסף זמין במאמר בדיקת שירות Cloud Run באופן מקומי.
אחרי שיוצרים או מעדכנים משימה באמצעות הקונטיינר המובנה, אפשר לראות איך מריצים את המשימה כפעולה חד-פעמית, לפי לוח זמנים או כחלק מתהליך עבודה.
כדי לבצע אוטומציה של גרסאות ה-build והפריסות של שירותי Cloud Run באמצעות Cloud Build Triggers, מגדירים פריסה רציפה.
כדי לבצע פיתוח אופטימלי של קונטיינרים לאפליקציית Java, אפשר לעיין במאמר בנושא פיתוח קונטיינרים של Java באמצעות Jib.