ציון גרסת Go
כברירת מחדל, ה-buildpack של Go משתמש בגרסה היציבה והעדכנית ביותר של המהדר (compiler) ב-Go. אם באפליקציה שלכם דרושה גרסה ספציפית, תוכלו ליצור מגבלת semver על ידי משתנה הסביבה GOOGLE_GO_VERSION וכך להשפיע על בחירת הגרסה הזמינה של Go.
pack build sample-go --builder=gcr.io/buildpacks/builder \
--env GOOGLE_GO_VERSION="17.x.x"
דגלים של הידור
ה-buildpack של Go יוצר קובץ הפעלה מתוך קוד המקור של האפליקציה באמצעות הפקודה go build command. כדי להגדיר את ההתנהגות של ה-build, אפשר להשתמש במשתני הסביבה הבאים:
GOOGLE_BUILDABLEמציין את הנתיב ליצירת החבילה. לדוגמה: הדגל./maindirשל Go ייצור את החבילה ברמה הבסיסית (root) ב-maindir.GOOGLE_CLEAR_SOURCEהשמטת קוד המקור מקובץ האימג' של האפליקציה. אם האפליקציה תלויה בקבצים סטטיים כמו תבניות של Go, הגדרת המשתנה הזה עלולה לגרום לבעיות בהתנהגות של האפליקציה. לדוגמה: הדגלים1,True,trueיגרמו לניקוי קוד המקור.GOOGLE_GOGCFLAGSמועברים אלgo buildואלgo runבתור-gcflagsללא פרשנות. לדוגמה: הדגלall=-N -lמאפשר ניתוח של מרוץ תהליכים ומשנה את האופן שבו נתיבי המקור מתועדים בקובץ הבינארי.GOOGLE_GOLDFLAGSמועברים לפקודת build ופקודת run של Go בתור-ldflagsללא פרשנות. לדוגמה: הדגל-s -wמשמש להסרה ולהקטנה של גודל בינארי.
ניהול של יחסי התלות
אנחנו ממליצים להשתמש במודולים של Go כדי לנהל את יחסי התלות באפליקציה שלכם ב-Go. ה-buildpack של Go משתמש בפקודה go build כדי ליצור את האפליקציה, ולכן התהליך הזה תואם להתנהגות של Go. כדי לוודא שהאפליקציה שלכם משתמשת במצב מבוסס-מודול, יש לכלול את הקובץ go.mod ברמה הבסיסית (root) של האפליקציה.
יחסי תלות של יצירת עותק מקוד של צד שלישי (vendoring)
בתהליך של יצירת עותק מקוד של צד שלישי (vendoring) מעתיקים את החבילות שהאפליקציה שלכם משתמשת בהן לספריית האפליקציות, במקום להוריד מודולים מהמקור שלהם בזמן תהליך ה-build. Go מספק את הפקודה build שמורידה את החבילות שהאפליקציה צריכה לספרייה בשם vendor בתיקיית שורש של האפליקציה.
הגדרת נקודת הכניסה לאפליקציה
כברירת מחדל, ה-buildpack של Go מגדיר את נקודת הכניסה לקונטיינר של האפליקציה כך שתפעיל את קובץ ההפעלה main שנוצר מקוד המקור של האפליקציה. אם אתם צריכים לשנות את התנהגות ברירת המחדל הזאת, תוכלו לספק קובץ Procfile או להעביר את משתנה הסביבה GOOGLE_ENTRYPOINT.
משתני סביבה
ה-buildpack של Go מאפשר להתאים אישית את הקונטיינר על ידי משתני הסביבה הבאים
GO
מידע נוסף זמין במסמכי התיעוד של Go, בקטע משתני סביבה.
לדוגמה: הפונקציה GOFLAGS=-flag=value מעבירה את -flag=value לפקודות go.