그렇다고 멀티 스테이지 빌드가 필요하지 않은 것은 아니다. 멀티 스테이지 빌드를 통해 의존 모듈 로딩을 최적화할 수 있다. Node.js는 npm(node package manager)이라는 패키지 관리자를 사용해 의존 모듈을 관리한다. 예제 4-3은 이 Node.js 애플리케이션을 빌드하는 전체 Dockerfile 스크립트다.

    예제 4-3 npm을 사용해 Node.js 애플리케이션을 빌드하는 Dockerfile 스크립트

    FROM diamol/node AS builder
    
    WORKDIR /src
    COPY src/package.json .
    
    RUN npm install
    
    # app
    FROM diamol/node
    
    EXPOSE 80
    CMD ["node", "server.js"]
    
    WORKDIR /app
    COPY --from=builder /src/node_modules/ /app/node_modules/
    COPY src/ .
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.