חלק 1: הוספת dist ל-.dockerignore
הסבר
אם לא נחריג את dist, ה-Dockerfile עלול להסתמך על ורסיה מקומית שלא נבנתה בתוך ה-container.
פעולות
- הוסיפו
dist ל-.dockerignore
חלק 2: עדכון Stage ה-Build
פעולות
- ב-stage הראשון (
build), הוסיפו שלושה instructions אחרי התקנת התלויות:
- העתקת תיקיית
src
- העתקת
tsconfig.json
- הרצת
npm run build
- חשבו: מדוע חשוב להעתיק גם את
tsconfig.json?
חלק 3: עדכון Stage ה-Distroless
פעולות
- ב-Stage ה-Distroless, שנו את ה-
COPY --from כך שיעתיק רק את dist/ (לא את src)
- עדכנו את ה-
CMD ל-["dist/index.js"]
- חשבו: מה Docker מריץ בפועל עם ה-CMD הזה?
חלק 4: בנייה והרצה
פעולות
- בנו את ה-image ועקבו אחרי השלבים
- הריצו container ובדקו שהאפליקציה עונה
- חשבו: מה אנחנו משיגים בשלב הרצה לעומת מה שיש ב-build stage?