FROM node:14.18.1-bullseye
WORKDIR /app
RUN npm install
COPY . .
CMD ["npm", "run", "start"]
위와 같이 이미지에 필요하지 않은 것 까지 이미지로 만들어버린다면 이미지의 컨텍스트 크기가 증가하면서 이미즈 pull & push, 빌드 및 실행시간이 오래 걸리게 된다.
필요한 리소스들만 COPY를 하도록 변경해서 이미지의 컨텍스트 사이즈를 줄이자
code - 프로젝트의 주요적인 코드들이 있는 폴더 ( 수정이 빈번하게 일어남 )
resource - 프로젝트의 필요한 리소스 폴더 ( 수정이 거의 일어나지 않음 )
libs - 프로젝트 라이브러리 폴더 ( 수정이 가끔씩 일어남 )
FROM node:14.18.1-bullseye
WORKDIR /app
RUN npm install
COPY ./code ./code
COPY ./resource ./resource
COPY ./libs ./libs
CMD ["npm", "run", "start"]
변경점이 있을 때마다 Docker 이미지를 빌드하는 상황에서
위와 같이 수정이 빈번하게 일어나는 code를 따로 분리하지 않고
COPY . . 처럼 같은 레이어로 묶게 된다면 캐시를 적용하기 힘들게 되기 때문에
변경이 많이 일어나는 리소스들은 분리해주자