Docker 이미지 최적화

권민제·2022년 9월 5일
0

Docker

목록 보기
2/3
post-thumbnail

⚡️ Improved Docker Build Performance

1. 필요한 리소스들만 이미지적용 (COPY . . 피하기)

FROM node:14.18.1-bullseye

WORKDIR /app

RUN npm install

COPY . .

CMD ["npm", "run", "start"]

위와 같이 이미지에 필요하지 않은 것 까지 이미지로 만들어버린다면 이미지의 컨텍스트 크기가 증가하면서 이미즈 pull & push, 빌드 및 실행시간이 오래 걸리게 된다.

필요한 리소스들만 COPY를 하도록 변경해서 이미지의 컨텍스트 사이즈를 줄이자

2. 변경이 많이 일어나는 리소스들 분리해서 COPY 적용

Ex. nodejs를 실행시키는 Dockerfile

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 . . 처럼 같은 레이어로 묶게 된다면 캐시를 적용하기 힘들게 되기 때문에
변경이 많이 일어나는 리소스들은 분리해주자

3. (작성중)

profile
성장하는 개발자!

0개의 댓글