토막숏 폼 블로그

Docker 이미지를 만들 때 chown을 사용하면 생기는 일

최근 도커 이미지를 배포할 때 걸리는 시간이 너무 오래걸리는 문제가 있었다. 네트워크 상황이나 여러 이슈도 있었지만 이미지 사이즈가 너무 큰 것이 가장 거슬리는 이슈였다.

베이스 이미지는 slim을 사용하고 있었고, 멀티 스테이지 빌드를 이용해 JAR 외의 파일도 최소화 해둔 상태였다. 그럼에도 이미지의 크기는 1.5GB에 달했는데, 도저히 원인 파악이 어려워 dive를 이용 레이어를 확인해보았고 원인은 chown으로 판명되었다.

chown은 "change owner", 즉 파일의 소유권을 변경하는 명령어다. 이 때, 파일의 소유권은 파일 시스템에 기록되고, 도커는 파일 시스템에 변경이 있으면 레이어를 하나 더 만든다. 그럼 이미 파일이 잔뜩 존재하는 디렉토리의 소유권을 변경하면 어떤 일이 벌어질까? 모든 파일이 담긴 레이어가 하나 더 만들어지면서 도커 이미지의 크기는 두 배가 될 것이다!

당겨서 다음 글 보기

프로필 사진

작성자

0