1) اختر صورة أساس صغيرة
FROM node:20-alpine # بدل node:20 الأكبر
2) رتّب الطبقات لاستغلال الـ cache
انسخ ملفّات الاعتماديات وثبّتها قبل نسخ الكود:
COPY package*.json ./
RUN npm install # تُعاد فقط عند تغيّر package.json
COPY . .
3) ادمج أوامر RUN
RUN apt-get update && apt-get install -y curl \
&& rm -rf /var/lib/apt/lists/*
كل RUN ينشئ طبقة — دمجها يقلّل عددها وحجمها.
4) استخدم .dockerignore
استبعد node_modules و.git من سياق البناء.
5) البناء متعدّد المراحل
(الدرس السابق) — أقوى أداة لتصغير صور الإنتاج.
فحص الحجم
docker images # عمود SIZE
docker history myapp # حجم كل طبقة
🎯 التالي: السجلّات والتشخيص.