Multi-stage Builds
יש שפות תכנות (כמו Go, Rust או C++) שצריך לְקַמְפֵּל לפני שמריצים — קומפיילר הוא כלי שמתרגם את קוד המקור שכתב מתכנת לתוכנית אחת שהמכונה יכולה להריץ ישירות (קובץ בינארי). ב-multi-stage build משתמשים בשלב builder עם ה-toolchain המלא כדי לקמפל, ואז בשלב runtime קטן שמעתיק עם COPY --from=builder רק את ה
מבשלים במטבח גדול ומבולגן עם הרבה סירים וחומרי גלם — ואז שולחים ללקוח רק את הצלחת המוגמרת, בלי הסירים ובלי השאריות.
- קומפיילר
- כלי שמתרגם קוד מקור שכתב מתכנת לתוכנית שהמכונה יכולה להריץ ישירות (קובץ בינארי). שפות מקומפלות כמו Go, Rust ו-C++ זקוקות לו כדי לבנות את התוכנית — אבל לא כדי להריץ אותה.
- build-stage
- השלב הראשון ב-multi-stage build, מבוסס על image עם toolchain מלא (קומפיילר, ספריות), שבו מקמפלים את האפליקציה לתוצר סופי.
- runtime-stage
- השלב האחרון, מבוסס על image קטן (למשל alpine), שמכיל רק את התוצר המוכן ואת מה שצריך כדי להריץ אותו — בלי כלי הבנייה.
- COPY --from
- הוראה שמעתיקה קבצים משלב קודם (לפי שם או מספר) אל השלב הנוכחי, ומאפשרת לבחור רק את התוצר הסופי ולהשאיר מאחור את שאר הבנייה.