개요도커 이미지 크기를 줄일 수 있는 방법에 대해 찾아본다.skaffold dev 명령어로 이미지 초기 생성시 필요한 패키지를 설치하는 과정이 빌드 과정의 많은 시간을 차지하는 문제가 있어 이를 줄일 수 있는 방법에 대해 찾아본다.기술 스택Docker Multi stage buildDocker Buildkit in SkaffoldPython Wheel 구현 방법Multi stage build 및 buildKit 사용도커 이미지를 빌드 할 때 소스 코드만 변경해도 필요한 패키지들을 모두 설치하는 과정이 포함되어 빌드 시간이 길게는 15초까지 소모됐다. 이를 해결하기 위해 Docker에서 지원하는 Multi stage build 및 buildKit을 사용한다. Multi stage build란 하나의 Do..
skaffold
개요Skaffold의 JIB를 사용해 Java spring 프로젝트를 빌드하고 배포JIB Sync 기능을 활용해 변경된 파일만 sync하여 재빌드 및 배포, pod 재시작 단계 생략 필요 조건Skaffold는 build 옵션으로 JIB를 지원하고 있다. 이때 File Sync 기능을 활용하면 변경된 파일을 copy 해주기 때문에 파일이 변경 되더라도 재빌드 및 배포, pod 재시작 단계 없이 구동되고 있는 pod에 변경사항을 적용시킬 수 있다.JIB Sync 기능을 auto로 사용하기 위해서는 몇가지 필요 요건이 존재한다. Sync 기능은 구동하는 컨테이너 내부에 tar가 존재해야 함. 즉, JIB가 build하는 base image에 tar가 포함되어야 함. spring dependency로 sprin..