더북(TheBook)

그렇다고 멀티 스테이지 빌드가 필요하지 않은 것은 아니다. 멀티 스테이지 빌드를 통해 의존 모듈 로딩을 최적화할 수 있다. 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/ .
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.