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의 종속성을 따로 다운받지 않고 변경된 코드만 빌드된다.
'프로그래밍' 카테고리의 다른 글
The 2021 Web Developer Readmap 하나씩 따라하기-(1)DNS and how it works? (0) | 2021.06.07 |
---|---|
Docker 개념과 기초 연습 4(Volume) (0) | 2021.03.07 |
Docker 개념과 기초 연습 3(node js 앱 만들기) (0) | 2021.03.07 |
Docker 개념과 기초 연습 2(run과 도커 명령어) (0) | 2021.03.05 |
Docker 개념과 기초 연습 1(쥬피터 노트북 설치와 도커허브) (0) | 2021.03.05 |