builder 단계를 정상적으로 마쳤다면, 다음 과정을 수행하는 마지막 단계를 실행해 애플리케이션 이미지를 생성한다.
• 기반 이미지는 diamol/openjdk이다. 이 이미지는 자바 11 런타임을 포함하지만, 메이븐은 포함하지 않는다.
• 이번에도 이미지에 작업 디렉터리를 만든 다음, 여기에 앞서 builder 단계에서 만든 JAR 파일을 복사한다. 이 JAR 파일은 모든 의존 모듈과 컴파일된 애플리케이션을 포함하는 단일 파일이다. 그러므로 builder 단계의 파일 시스템에서 이 파일만 가져오면 된다.
• 애플리케이션은 80번 포트를 주시하는 웹 서버 애플리케이션이다. 그러므로 이 포트를 EXPOSE 인스트럭션을 통해 외부로 공개해야 한다.
• ENTRYPOINT 인스트럭션은 CMD 인스트럭션과 같은 기능을 하는 인스트럭션이다. 해당 이미지로 컨테이너가 실행되면 도커가 이 인스트럭션에 정의된 명령을 실행한다. 이 이미지의 경우 java 명령으로 빌드된 JAR 파일을 실행한다.
실습 자바 애플리케이션의 소스 코드를 훑어보고 이미지를 빌드하라.
cd ch04/exercises/image-of-the-day docker image build -t image-of-the-day .