2025-08-28

1일 1아티클

데보션

스프링부트 컨테이너 이미지 경량화

문제 상황

  • 스프링부트 애플리케이션을 도커 이미지로 생성 시, 용량이 큼

경량화 방법

  1. 기본 방법 - JDK 이미지 위에 JAR 파일 단순 복사
    • 기반 이미지 : openjdk:17-slim (자바 실행에 필요한 모든 도구 포함)
    • 작업 : app.jar 을 이미지 안에 복사
    • 문제점 : slim 버전임에도 자바 실행 환경 자체가 큼, 최종 이미지 용량은 473MB
  2. 가벼운 기반 이미지 사용
    • 기반 이미지 : openjdk:17-slimamazoncorretto:17-alpine
    • 결과 : 최종 이미지 용량 473MB → 358MB
  3. 멀티 스테이지 빌드 도입
    • 도커 이미지 생성 과정을 여러 단계로 구분
    • 1단계 (빌드) : 소스 코드 컴파일 및 실행 파일(app.jar) 생성 (Maven 등 무거운 빌드 도구 포함)
    • 2단계 (실행) : 1단계에서 만들어진 결과물(app.jar)만 가져와서, 가벼운 자바 실행 환경 이미지에 추가
    • 결과 : 최종 이미지에 무거운 빌드 도구 미포함으로 용량 개선 가능
  4. 필요한 것만 추가
    • 3개의 스테이지로 구분
    • 1단계 (JRE 빌더) : JDK에서 앱 실행에 필요한 모듈만 골라낸 뒤 최소한의 맞춤형 JRE 생성
    • 2단계 (앱 빌드) : 소스 코드 빌드하여 app.jar 생성
    • 3단계 (최종) : 가장 가벼운 기반 이미지에 1번 스테이지의 결과물(맞춤형 JRE) + 2번 스테이지의 결과물(app.jar) 복사
    • 결과 : 최종 이미지 용량 358MB → 168MB

오늘 배운 것

  1. 알고리즘
    • swea 5656 벽돌 깨기
    • 시뮬레이션

내일 할 일

  1. 상담 피드백 바탕으로 포트폴리오 수정 (다음주 주말까지는 완료)

참고자료

results matching ""

    No results matching ""