본문 바로가기
DevOps 관련/Docker

[Docker & Svelte + SvelteKit] 도커 이미지 최적화

by minhyeok.lee 2023. 9. 14.
반응형

일반적인 도커파일 방식

# 빌드에 필요한 모든 파일

COPY package.json .
COPY package-lock.json .
COPY pnpm-lock.yaml .
COPY svelte.config.js .
COPY vite.config.ts .

# 빌드에 필요한 모든 폴더
COPY . .

RUN npm i
RUN pnpm install —frozen-lockfile
RUN pnpm build

EXPOSE 3000

CMD ["node", "build"]

 

위 방식에서 node_module을 포함한 docker 이미지를 만드는데 필요한 것을 다단계로 나누어 배포한다.

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

FROM node:18-alpine
WORKDIR /app
COPY --from=builder /app/build build/
COPY --from=builder /app/node_modules node_modules/
COPY package.json .
EXPOSE 3000
ENV NODE_ENV=production
CMD [ "node", "build" ]

 

반응형

댓글