</>
⌕
Mid #dockerfile#multi-stage

Làm sao để Dockerfile build nhanh và image nhỏ?

⚡ Trả lời nhanh

Sắp xếp lệnh ít thay đổi lên trước để tận dụng layer cache, dùng multi-stage build để bỏ công cụ build khỏi image cuối, chọn base image nhỏ (alpine/slim) và thêm .dockerignore.

FROM node:22-alpine AS build
WORKDIR /app
COPY package*.json ./          # đổi ít -> cache npm ci
RUN npm ci
COPY . .
RUN npm run build

FROM node:22-alpine            # stage cuối: chỉ chứa thứ cần chạy
WORKDIR /app
COPY --from=build /app/dist ./dist
COPY --from=build /app/package*.json ./
RUN npm ci --omit=dev
USER node
CMD ["node", "dist/main.js"]
🃏 Ôn bằng flashcard