Nuxt3로 개발한 프로젝트를 빌드하니 이미지 사이즈가 1.5GB가 되었다.
Nginx로만 빌드하면 이미지 사이즈가 200MB 이지만,
난 SSR을 사용해야하기 때문에 Node로 말아주는 작업이 필요하였고, 그 결과 이미지 사이즈가 1.5GB가 되었다.
사이즈가 너무 크면 빌드할 때 문제가 될 수 있으니 이미지 사이즈를 줄여보자!
1. Node 버전 변경
node:18 버전 -> node:18-alpine으로 변경
Dockerfile
// Before
FROM node:18
// After
FROM node:18-alpine
2. .dockerignore 추가
Docker에서 제외되어도 되는 폴더, 파일 제외
.dockerignore
node_modules
.nuxt
.git
dist
3. Docker 멀티 스테이지 빌드
Dockerfile
FROM node:18-alpine as build
#ARG PORT=80
WORKDIR /app
COPY package.json /app
RUN npm install
COPY . /app
RUN npm run build
RUN npm prune
FROM node:18-alpine as prod
WORKDIR /app
COPY --from=build /app/.output /app/.output
#EXPOSE 80
#ENV PORT=80
CMD ["node", ".output/server/index.mjs"]
'ETC' 카테고리의 다른 글
| [Mac] 인텔리제이에서 왼쪽 클릭이 먹통되는 문제 (0) | 2024.05.16 |
|---|---|
| Docker Desktop 대체 (MAC) (0) | 2024.03.20 |
| [오류] NODE_ENV' is not recognized as an internal or external command (0) | 2024.03.15 |
| SEO(검색 엔진 최적화)란? (2) | 2023.11.08 |
| HTTP 상태 코드 (0) | 2023.11.04 |