프로그래밍
Docker 개념과 기초 연습 4(재빌드)
루돌프___
2021. 3. 7. 16:28
Docker 컨테이너로 어플을 실행 할 때 이미지를 만들기 위해 빌드 하고 run 해서 도커 이미지의 컨테이너를 만들고 실행한다.
그러면 여기에 궁금증이 생긴다. 만약 코드가 변경된다면 항상 빌드 후에 런을 매번 해주어야 하나?
변경 전 코드
FROM node:10
WORKDIR /usr/src/app
#전체 코드 복사
COPY ./ /
# package.json 종속성 다운
RUN npm install
EXPOSE 8080
CMD ["node", "index.js"]
변경 후 코드
FROM node:10
# 먼저 워킹 dir 생성
WORKDIR /usr/src/app
#package.json만 먼저 복사
COPY package.json ./
# package.json 종속성 다운
RUN npm install
EXPOSE 8080
#전체 코드 복사
COPY ./ /
CMD ["node", "index.js"]
여기서 보면 package.json 을 먼저 install 한 다음에 전체 코드를 복사한다.
그러면 이미 캐시가 있기 때문에 npm install 은 package.json의 종속성을 따로 다운받지 않고 변경된 코드만 빌드된다.