인프런 커뮤니티 질문&답변

포닥님의 프로필 이미지

작성한 질문수

따라하며 배우는 도커와 CI환경 [2023.11 업데이트]

도커를 이용하여 리액트 앱 실행하기

Dockerfile 작성 시 캐싱에 관련해서 질문있습니다.

작성

·

176

0

강의 잘 듣고 있습니다!

이번 강의 3:30 쯤에서 말씀하신 내용인데, 이전에도 다뤘지만 캐싱되는 방식이 애매하여 질문드립니다.

1. `COPY package.json ./` 과정이 생략된 경우

- 빌드 할 때마다 의존성 설치가 이뤄지는 것은 이해가 갑니다.

2. `COPY package.json ./` 과정이 추가된 후 `npm install` 을 실행한 후, `COPY ./ ./` 를 실행하는 경우

- 제 생각에는 npm install을 실행하는 시점에서 컨테이너의 working directory 에는 package.json 하나만 있는데 파일에 변경이 없으니 캐싱된 데이터(node_modules, package-lock.json)를 가져와서 복사해서 넣어준다.

- 여기까지 수행하면 의존성이 설치된 상태이니, 나머지 모든 파일들을 복사해서 넣어준다. 다만 여기에는 package.json 이 겹치는 파일이나, 내용에 차이가 없기 때문에 문제가 발생하지 않는다.

위 작성한 내용 중 제가 잘못 이해한 부분이 있다면 지적해주시면 감사하겠습니다. 항상 감사합니다 :-)

+ 추가로 든 의문인데, 캐싱된 데이터는 이전에 생성했던 컨테이너에서 가져오는 걸까요? 

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
포닥님의 프로필 이미지

작성한 질문수

질문하기