예제 4-2 메이븐을 사용해 자바 애플리케이션을 빌드하는 Dockerfile 스크립트
FROM diamol/maven AS builder
WORKDIR /usr/src/iotd
COPY pom.xml .
RUN mvn -B dependency:go-offline
COPY . .
RUN mvn package
# app
FROM diamol/openjdk
WORKDIR /app
COPY --from=builder /usr/src/iotd/target/iotd-service-0.1.0.jar .
EXPOSE 80
ENTRYPOINT ["java", "-jar", "/app/iotd-service-0.1.0.jar"]
거의 모든 인스트럭션(instruction)은 이미 본 적이 있는 인스트럭션이다. 그리고 스크립트에 사용된 패턴 역시 앞서 살펴본 예제에서 직접 작성해 본 적이 있다. FROM 인스트럭션이 여러 개 있는 것으로 보아 멀티 스테이지 빌드가 적용된 스크립트다. 그리고 도커의 레이어 캐시를 최대한 활용할 수 있도록 인스트럭션이 배치됐다는 것도 알 수 있다.