סודות, משתני סביבה וקונפיגורציה
אותו image צריך לרוץ ב-dev, ב-staging וב-production — אבל הסיסמאות והמפתחות שונים בכל סביבה, ואסור שייכנסו ל-image. בשיעור הזה נבדיל בין ARG, שקיים רק בזמן build, לבין ENV, שנשאר ב-image ובזמן ריצה. נראה למה סוד שנכתב לתוך layer דולף לנצח דרך היסטוריית ה-image, ולמה את הסודות מעבירים בזמן ריצה — לא
קונפיגורציה היא כמו כרטיס מתכון שאפשר לשתף עם כולם. סוד הוא כמו מפתח הבית שלך — לעולם לא מדביקים אותו על המתכון ומחלקים לכולם.
- ARG
- ערך שזמין רק בזמן build של ה-image. אחרי שהבנייה מסתיימת הוא נעלם ואינו קיים בזמן ריצה. שימושי לפרמטרים של בנייה, לא לקונפיגורציה שצריך בזמן ריצה.
- ENV
- משתנה סביבה שנכתב לתוך ה-image ונשאר זמין בזמן ריצה. נוח לקונפיגורציה לא-רגישה, אבל אסור לשים בו סודות, כי הוא נשמר בשכבות ה-image.
- secret-leak
- דליפה של מידע רגיש כי הוא נכתב לתוך layer של ה-image. כל שכבה נשמרת בהיסטוריה, ולכן סוד שנכתב פעם אחת זמין למי שמושך את ה-image — גם אם שכבה מאוחרת 'מוחקת' אותו.