Spring Boot 애플리케이션을 Docker 멀티 스테이지 빌드로 컨테이너화하는 예제 프로젝트입니다.
javaspring/
├── src/
│ ├── main/java/com/example/App.java # Spring Boot 메인 애플리케이션
│ └── test/java/com/example/AppTest.java # MockMvc 기반 단위 테스트
├── pom.xml # Maven 의존성 및 빌드 설정
└── Dockerfile # 멀티 스테이지 빌드 정의
- Docker 설치
로컬 빌드(Docker 없이)의 경우 JDK 17, Maven 설치 필요
git clone https://github.com/gasbugs/javaspring.git
cd javaspringdocker build -t my-java-app .첫 번째 스테이지에서 Maven이 소스를 컴파일하고 테스트를 실행합니다. 테스트 실패 시 빌드가 중단됩니다.
docker run -d -p 8080:8080 my-java-appcurl http://localhost:8080
# Hello, Web Docker Multi-Stage![1단계] maven:3.9.11-eclipse-temurin-17
- pom.xml + src 복사
- mvn clean package (컴파일 + 테스트 + JAR 생성)
↓ JAR 파일만 전달
[2단계] eclipse-temurin:17-jre-alpine
- JAR 복사 후 실행
- 최종 이미지 크기 최소화 (JDK 불포함)
# 빌드 및 테스트
mvn clean package
# 실행
java -jar target/*.jar| 메서드 | 경로 | 응답 |
|---|---|---|
| GET | / |
Hello, Web Docker Multi-Stage! |