MSA/도커

[Docker] Java 프로젝트를 Docker 이미지로 빌드하기

miracle21 2025. 10. 13. 10:41
반응형

 

 

AWS EC2로 운영중이던 java 서비스를 EKS 로 전환해야하는 일이 있었다.

 

 

Maven 등의 빌드 도구가 필요한 java 서비스는 도커 이미지로 빌드하고 실행 환경을 만들면

 

빌드 환경과 서비스 실행 환경을 분리할 수가 있어서, Maven, JDK, 빌드 캐시 등의 불필요한 산출물들이 남지 않는다.

 

 

 

# 1단계: 빌드 환경 (Maven)
FROM maven:3.8.6-amazoncorretto-8 AS builder
WORKDIR /build
COPY service /build
RUN mvn clean package

# 2단계: 실행 환경 (Amazon Linux)
FROM amazonlinux:2 AS base
RUN yum update -y && \
    yum install -y java-1.8.0-openjdk && \
    yum clean all

# 3단계: 빌드 결과물만 복사해서 실행
COPY --from=builder /build/target/*.jar /app/app.jar
WORKDIR /app
CMD ["java", "-jar", "app.jar"]

 

 

 

위 코드처럼 첫 이미지는 빌드용 환경을 만들어서 jar 파일 빌드를 하고(AWS 환경에 최적화된 amazoncorretto 선택)

 

마지막 이미지는 실제 실행환경으로 사용할 베이스 이미지를 만들어서 빌드한 파일만 복사할 수 있다.

 

반응형