1. 개요
이 기사에서는 Java 실행 가능 jar 기반 애플리케이션을 Dockerize하는 방법을 보여줍니다 . Docker 사용의 이점에 대해 읽으십시오 .
2. 실행 가능한 Jar 만들기
Maven을 사용하여 실행 가능한 jar를 빌드할 것 입니다.
따라서 우리 애플리케이션에는 기본 메서드 가 있는 간단한 클래스인 HelloWorld.java 가 있습니다 .
public class HelloWorld {
public static void main(String[] args){
System.out.println("Welcome to our application");
}
}
그리고 maven-jar-plugin 을 사용하여 실행 가능한 jar를 생성합니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
<configuration>
<archive>
<manifest>
<mainClass>com.baeldung.HelloWorld</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
3. Dockerfile 작성
실행 가능한 jar 파일을 Dockerfile에 Dockerize하는 단계를 작성해 보겠습니다 . Dockerfile 은 빌드 컨텍스트 의 루트 디렉터리에 있습니다 .
FROM openjdk:11
MAINTAINER baeldung.com
COPY target/docker-java-jar-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
여기 첫 번째 줄에서 OpenJDK Java 버전 11 이미지를 공식 리포지토리에서 기본 이미지로 가져옵니다. 후속 라인 은 진행하면서 이 기본 이미지 위에 추가 레이어를 생성합니다 .
두 번째 줄에서는 이미지의 관리자를 지정합니다 . 이 경우에는 baeldung.com 입니다. 이 단계에서는 추가 레이어를 생성하지 않습니다.
세 번째 줄에서는 생성된 jar인 docker-java-jar-0.0.1-SNAPSHOT.jar 을 빌드 컨텍스트 의 대상 폴더 에서 이름이 app 인 컨테이너 의 루트 폴더로 복사하여 새 레이어를 만듭니다. 항아리 .
그리고 마지막 줄에서 이 이미지에 대해 실행되는 통합 명령으로 기본 애플리케이션을 지정합니다 . 이 경우 java -jar 명령 을 사용하여 app.jar 을 실행하도록 컨테이너에 지시합니다 . 또한 이 줄은 추가 레이어를 도입하지 않습니다.
4. 이미지 구축 및 테스트
이제 Dockerfile 이 있으므로 Maven을 사용하여 실행 가능한 jar를 빌드하고 패키징해 보겠습니다.
mvn package
그런 다음 Docker 이미지를 빌드해 보겠습니다.
docker image build -t docker-java-jar:latest .
여기서는 -t 플래그를 사용하여 <name>:<tag> 형식 의 이름과 태그 를 지정합니다 . 이 경우 docker-java-jar 는 이미지 이름이고 태그는 latest 입니다. "." Dockerfile 이 있는 경로를 나타냅니다 . 이 예에서는 단순히 현재 디렉토리입니다.
참고: 동일한 이름과 다른 태그를 사용하여 다른 Docker 이미지를 빌드할 수 있습니다.
마지막으로 명령줄에서 Docker 이미지를 실행해 보겠습니다.
docker run docker-java-jar:latest
위의 명령은 Docker 이미지를 실행하여 이름과 <name>:<tag> 형식의 태그로 식별합니다.
4. 결론
이 기사에서는 실행 가능한 Java jar를 도커화하는 것과 관련된 단계를 살펴보았습니다. 이 문서에 사용된 코드 샘플은 GitHub에서 사용할 수 있습니다 .