להורדת חבילות בזמן בנייה, השתמשו בקלטי הפרוקסי המוגדרים מראש של Docker במקום לשמור נתיב זמני ב-ENV של Dockerfile. קריאת POSIX יכולה לספק:

HTTP_PROXY=http://203.0.113.10:8080 \
HTTPS_PROXY=http://203.0.113.10:8080 \
docker build --build-arg HTTP_PROXY --build-arg HTTPS_PROXY .

החליפו את נקודת הקצה מהתיעוד. אם משמיטים ערכים אחרי שמות --build-arg, הם נלקחים מהסביבה של הקריאה הזו. אין צורך בהצהרות ARG תואמות.

Docker מוציא כברירת מחדל את ארגומנטי הפרוקסי האלה מטיפול במטמון הבנייה ומ-docker history. הפניה מפורשת אליהם ב-Dockerfile משנה התנהגות זו, לכן אל תוסיפו הצהרות רק משום שדוגמה אחרת עושה זאת.

התהליך עדיין מקבל את הערכים. URL מאומת עלול לדלוף דרך סביבה מודפסת, לוגים, תצורה שהועתקה או פעולות תמונה מאוחרות יותר. ENV ב-Dockerfile הופך את הנתיב לחלק מסביבת התמונה הסופית.

כאשר פקודה צריכה חומר רגיש, secret mount של BuildKit מספק ממשק סוד בזמן הבנייה. הגבילו את האישור לפעולה זו; אל תדפיסו את ה-mount ואל תעתיקו את תוכנו לשכבת תמונה.

קלטי הבנייה האלה אינם מגדירים לא את משיכת הרישום המוקדמת של daemon ולא את נתיב המארח של builder מרוחק שאינו נגיש. לאחר מכן בדקו את התמונה הסופית ואת תצורת היישום לערכי פרוקסי קבועים.

מאמרים קשורים