멀티 스테이지 빌드·불필요 레이어 제거·경량 베이스 이미지 전환으로 이미지 최적화 결
컨테이너 이미지 최적화에서 가장 먼저 시도한 것은 멀티 스테이지 빌드였습니다. 빌드 도구와 의존성을 런타임 이미지에 포함시키지 않고 빌드 단계와 실행 단계를 분리하니 최종 이미지 크기가 절반 이하로 줄었습니다.
베이스 이미지 선택도 크기에 큰 영향을 줬습니다. 기존에 ubuntu 기반 이미지를 쓰다가 alpine 기반으로 전환했는데, 런타임 라이브러리 차이로 인한 호환성 문제가 생겨 일부 서비스는 다시 slim 버전을 사용하는 결정을 내렸습니다.
레이어 최소화도 실습했습니다. Dockerfile의 각 명령어가 레이어를 생성하므로 RUN 명령어를 논리적으로 묶어 레이어 수를 줄이고, 캐시 활용이 가능한 순서로 명령어를 배치했습니다. 빌드 시간 단축 효과도 있었습니다.