- Base image nhỏ: dùng
alpine,-slim, hoặcdistrolessthay cho image full OS. - Multi-stage build: chỉ copy artifact runtime, bỏ toolchain/dev dependency.
- Gộp lệnh
RUNvà dọn cache trong cùng layer (apt-get ... && rm -rf /var/lib/apt/lists/*) — vì mỗiRUNlà một layer, xóa ở layer sau không giảm kích thước. .dockerignore: loạinode_modules,.git, file build khỏi context.- Cài chỉ production dependency (
npm ci --omit=dev). - Ghim version cụ thể, tránh cài package thừa.
Ít layer + base gọn + không file thừa = image nhỏ, pull/deploy nhanh, bề mặt tấn công thấp.