인프런 커뮤니티 질문&답변
Dockerfile 작성 시 캐싱에 관련해서 질문있습니다.
작성
·
341
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 이 겹치는 파일이나, 내용에 차이가 없기 때문에 문제가 발생하지 않는다.
위 작성한 내용 중 제가 잘못 이해한 부분이 있다면 지적해주시면 감사하겠습니다. 항상 감사합니다 :-)
+ 추가로 든 의문인데, 캐싱된 데이터는 이전에 생성했던 컨테이너에서 가져오는 걸까요?
퀴즈
61%나 틀려요. 한번 도전해보세요!
Docker Compose의 주된 역할은 무엇일까요?
컨테이너 이미지를 만드는 역할
단일 Docker 컨테이너를 실행하는 역할
다중 컨테이너 애플리케이션을 정의하고 관리하는 역할
Docker 데몬을 설치하고 설정하는 역할
답변
답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!




