Multi-stage Build untuk Ukuran Image Ringkas

Multi-stage build memisahkan tahap kompilasi (builder) dan tahap runtime untuk menghasilkan ukuran image sekecil mungkin (misal dari 1GB menjadi 50MB).

👀 Contoh dulu

FROM node:20 AS builder
WORKDIR /app
RUN npm run build

FROM node:20-alpine AS runner
COPY --from=builder /app/dist ./dist
CMD ["node", "dist/index.js"]

Hasilnya: Hanya hasil build dist yang disertakan di image akhir.

💡 Menghilangkan devDependencies dan compiler dari image produksi.

📝 Sekarang giliranmu

Pindahkan folder /app/dist yang dihasilkan dari stage bernama builder ke lokasi ./dist pada stage final.

Preview