Knative serving מקבל קובצי אימג' של קונטיינרים שנוצרו באמצעות כל כלי שיכול ליצור קובצי אימג' של קונטיינרים, כל עוד הם עומדים בדרישות של הסכם הקונטיינר.
בפרט, הקוד צריך להאזין לבקשות HTTP ביציאה שמוגדרת על ידי משתנה הסביבה PORT. משתנה הסביבה PORT מוזרק אוטומטית לקונטיינר על ידי Knative serving.
בדף הזה מתוארות כמה דרכים ליצור קובצי אימג' של קונטיינרים:
- שימוש בקובץ Dockerfile
- שימוש ב-Buildpacks
בנייה באמצעות Dockerfile
אם אתם משתמשים ב-Dockerfiles, אתם יכולים להשתמש באחת מהשיטות הבאות כדי לבצע build:
- פיתוח באמצעות Cloud Build
- פיתוח גרסת build באופן מקומי באמצעות Docker
פיתוח באמצעות Cloud Build
כדי ליצור את קובץ האימג' ב- Google Cloud:
עוברים לתיקייה שמכילה את המקורות ואת קובץ ה-Dockerfile.
מריצים את הפקודה:
gcloud builds submit --tag IMAGE_URL
מחליפים את IMAGE_URL בהפניה לקובץ אימג' של קונטיינר, לדוגמה,
gcr.io/cloudrun/hello.
הוראות מפורטות ל-Cloud Build זמינות במאמר בנושא פריסה ב-Knative serving.
טיפים לשיפור הביצועים של ה-Build מפורטים במאמר בנושא האצת ה-Build
פיתוח מקומי והעברה בדחיפה באמצעות Docker
אם התקנתם את Docker באופן מקומי, אתם יכולים להשתמש ב-docker build במקום ב-Cloud Build או ב-Buildpacks.
לפני שיוצרים גרסת build של המקורות בקובץ אימג' של קונטיינר (תהליך שנקרא 'קונטיינריזציה') באמצעות Docker, צריך לוודא שקיים Dockerfile לצד המקורות. בהוראות הבאות נעשה שימוש ב-Container Registry כמאגר התמונות.
כדי ליצור את קובץ האימג' של הקונטיינר באמצעות Docker:
עוברים לתיקייה שמכילה את המקורות ואת
Dockerfile.מריצים את הפקודה:
docker build . --tag IMAGE_URL
מחליפים את IMAGE_URL בהפניה לקובץ אימג' של קונטיינר, לדוגמה,
gcr.io/cloudrun/hello.אם עדיין לא הגדרתם את Docker כך שישתמש ב-Google Cloud CLI כדי לאמת בקשות ל-Container Registry, עכשיו הזמן לעשות זאת באמצעות הפקודה:
gcloud auth configure-docker
צריך לעשות את זה לפני שמעבירים בדחיפה או מושכים קובצי אימג' באמצעות Docker. צריך לעשות את זה רק פעם אחת.
מעבירים בדחיפה את קובץ האימג' של הקונטיינר אל Container Registry:
docker push IMAGE_URL
מחליפים את IMAGE_URL בהפניה לקובץ אימג' של קונטיינר, לדוגמה,
gcr.io/cloudrun/hello.
כדי להחריג קבצים מקומיים מהתהליך הזה, פועלים לפי ההוראות ל.dockerignoreקובץ התצורה.
בנייה באמצעות Buildpacks
מידע מלא על Buildpacks זמין באתר Buildpacks. Google מספקת קבוצה של Buildpacks שתואמים ל-CNCF, שיוצרים קוד מקור בקובצי אימג' של קונטיינרים שמיועדים להרצה ב Google Cloud פלטפורמות של קונטיינרים, כולל Knative serving.
הפלטפורמות הבאות נתמכות כרגע:
- Go
- Node.js
- Python
- Java
- .NET Core
פיתוח באמצעות Buildpacks באמצעות Cloud Build
כדי לבנות באמצעות Buildpack:
עוברים לתיקייה שמכילה את המקורות.
מריצים את הפקודה:
gcloud builds submit --pack image=IMAGE_URL
מחליפים את IMAGE_URL בכתובת ה-URL של קובץ אימג' של קונטיינר, לדוגמה:
gcr.io/myproject/myservice.מחכים לסיום ה-build.
יצירת buildpack באמצעות שורת הפקודה pack
כדי לבצע build באמצעות הפקודה pack:
אם עדיין לא עשיתם זאת, מתקינים את Docker.
אם עדיין לא הגדרתם את Docker כך שישתמש ב-Google Cloud CLI כדי לאמת בקשות ל-Container Registry, עכשיו הזמן לעשות זאת באמצעות הפקודה:
gcloud auth configure-docker
צריך לעשות את זה לפני שמעבירים בדחיפה או מושכים קובצי אימג' באמצעות Docker. צריך לעשות את זה רק פעם אחת.
אם עדיין לא עשיתם זאת, מתקינים את
pack.עוברים לתיקייה שמכילה את המקורות.
מריצים את הפקודה הבאה כדי ליצור את קובץ האימג' בקונטיינר ולדחוף אותו למאגר קונטיינרים:
pack build --publish IMAGE_URL
מחליפים את IMAGE_URL בהפניה לקובץ אימג' של קונטיינר, לדוגמה,
gcr.io/cloudrun/hello.ממתינים עד שהפעולה
packתסתיים.
מידע נוסף זמין בהוראות שבקטע פיתוח אפליקציה.
המאמרים הבאים
מידע נוסף על החוזה שמאגרי התגים צריכים לעמוד בו כדי שאפשר יהיה לפרוס אותם ב-Knative Serving זמין במאמר Container Contract.
כדי לפרוס את הקונטיינרים שבניתם ב-Knative serving, פועלים לפי ההוראות במאמר פריסת שירותים.
כדי להפוך את הגרסאות והפריסות של שירותי Knative serving לאוטומטיות באמצעות Cloud Build Triggers, צריך להגדיר פריסה רציפה.