Container/Docker

nodejs 멀티스테이지 빌드 Docker 이미지

2mukee 2021. 11. 23. 20:09
320x100
320x100

멀티스테이지 빌드

: 개발 환경용 이미지와 제품 환경용 이미지를 한 파일로 작성하여 이미지의 빌드 속도를 올리는 방법

: 빌드용 이미지와 배포용 이미지를 한 도커파일에 작성

: Docker 3버전 부터 지원

 

 

 

 

※ 알파인 리눅스 패키지 검색

: https://pkgs.alpinelinux.org/packages

 

Alpine Linux packages

Branch edge v3.14 v3.13 v3.12 v3.11 v3.10 v3.9 v3.8 v3.7 v3.6 v3.5 v3.4 v3.3 Repository main community testing Arch x86_64 x86 aarch64 armhf ppc64le s390x armv7 mips64 riscv64 Maintainer None 6543 7heo A. Wilcox Aaron Hurt Adam Dobrawy Adam Jensen Adam Nye

pkgs.alpinelinux.org

 

 

 

 

예제 (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