Container/Docker
nodejs 멀티스테이지 빌드 Docker 이미지
2mukee
2021. 11. 23. 20:09
320x100
320x100
멀티스테이지 빌드
: 개발 환경용 이미지와 제품 환경용 이미지를 한 파일로 작성하여 이미지의 빌드 속도를 올리는 방법
: 빌드용 이미지와 배포용 이미지를 한 도커파일에 작성
: Docker 3버전 부터 지원
※ 알파인 리눅스 패키지 검색
: https://pkgs.alpinelinux.org/packages
예제 (https://github.com/KNUT-Mohaemookji/mohaemookji)
# Build Image
FROM node:14.17.6 AS builder
COPY . /usr/local/mohaemookji
# frontend library install and build
WORKDIR /usr/local/mohaemookji/mh-frontend
RUN npm install && npm run build
# main server library install and build
WORKDIR /usr/local/mohaemookji/
RUN npm install && npm run build
# Main Container
FROM alpine:edge
# build file loading from builder image
COPY --from=builder /usr/local/mohaemookji/dist /usr/local/mohaemookji
RUN ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime \
&& apk add --update nodejs=16.13.0-r0 \
&& apk add --update npm
EXPOSE 17260
ENTRYPOINT ["node", "/usr/local/mohaemookji/main.js"]
실행결과
: 기존 1기가에 육박하였던 2mukee/mh_api_deploy와 2mukee/mh_main_deploy 이미지가
무려 57MB로 크게 줄어들어 리소스 사용량이 줄었다.
300x250
728x90