본문 바로가기
Q&A해결2025년 1월 22일1분 읽기

Docker 이미지 용량이 2GB가 넘어요

도
도커입문
조회 325댓글 3
Docker로 Node.js 앱을 빌드하는데 이미지 크기가 2.3GB나 됩니다.
FROM node:20
WORKDIR /app
COPY . .
RUN npm install
RUN npm run build
CMD ["node", "dist/main.js"]
프로덕션에 배포하려는데 이미지 push/pull 시간이 너무 오래 걸리네요. 어떻게 하면 이미지 용량을 줄일 수 있을까요? multi-stage build라는 걸 들었는데 어떻게 적용해야 할지 모르겠습니다.

댓글 3

김김영삼1년 전
multi-stage build를 사용하면 빌드 도구 없이 실행 파일만 최종 이미지에 포함할 수 있습니다.

FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
CMD ["node", "dist/main.js"]


alpine 베이스 이미지 + multi-stage로 200~300MB 수준까지 줄일 수 있습니다. 추가로 .dockerignore 파일에 node_modules, .git 등을 넣어주세요.
도도커입문(guest)1년 전
해결됐습니다! 2.3GB에서 280MB로 줄었네요. alpine 이미지가 이렇게 차이가 크군요. 감사합니다!
프프론트수진1년 전
추가로 distroless 이미지도 추천드립니다. gcr.io/distroless/nodejs20 쓰면 보안도 좋고 더 가볍습니다.
Ctrl+Enter로 등록