-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor: CD 파이프라인 이미지 최적화 및 빌드 성능 개선을 위한 Docker Multi-stage Build, Spring Layered JAR 및 BuildKit 도입 완료 #617
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
도커를 공부하면서, 스프링 프로젝트는 결국 JAR파일이 하나로 묶여있어 빌드시 캐시를 어떻게 활용할 수 있을지 의문이었는데요, JAR파일도 Layer화해서 캐싱을 통해 최적화가 가능한 것이었군요..!
소소한 충격입니다
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
좋은 작업 감사합니다! .jar니까 springboot 기반 서버에서는 캐시 효율성을 끌어낼 수 없는건가?라고 생각한 제가 새롭게 배웠습니다.
Summary
기존의 단일 단계 Docker 빌드 방식의 한계를 극복하고, 빌드 속도 및 이미지 크기를 최적화하기 위해 Docker Multi-stage Builds, Spring Layered JAR, Docker BuildKit을 도입하였습니다. 또한, Jenkins CD 파이프라인을 최적화하여 전체적인 CD 효율성을 향상시켰습니다. 이를 통해 더 작고 안전한 Docker 이미지를 생성하고, 빌드 시간을 단축하며, 유지 관리성을 높일 수 있게 되었습니다.
Tasks
멀티 스테이지 빌드 적용
Spring Layered JAR 도입
Docker BuildKit 활성화 및 최적화
Jenkins CD 파이프라인 최적화
Dockerfile 및 Jenkinsfile 업데이트
ETC
default.conf
에서members.conf
로 변경되었습니다.Screenshot
빌드 속도: 17.19% 개선 (2m 37s -> 2m 10s / 별도의 라즈베리파이 5 환경에서 테스트 진행)
이미지 크기: 68.58% 개선 (596.09 MB -> 187.27 MB)
적용 전
적용 후