
요즘 쿠버네티스를 공부하면서 도커파일 작성에 대한 중요성을 깨달았습니다. 컨테이너 기술을 활용하기 위한 연습을 하면서 직접 jar파일을 뽑아서 도커 이미지를 띄워보겠습니다.


프로젝트를 생성했다면 test컨트롤러를 하나 만들어줍니다.
@RestController
public class TestController {
@GetMapping("/test")
public String test() {
return "k8s-test";
}
}
build.gradle 파일에 아래 코드를 추가해줍니다.
bootJar{
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}
왼쪽 사이드 바를 잘 보시기 바랍니다.

입력 후 오른쪽 코끼리 모양 버튼을 누르고, Execute Gradle Task 버튼을 누릅니다.

이제 검색창에 build를 추가하고, 클릭합니다.


이렇게 빌드가 완료되면 왼쪽 사이드 바에 build폴더가 생긴 것을 확인할 수 있습니다.


우리는 lib폴더안에 k8s-test-0.0.1-SNAPSHOT.jar를 사용할 겁니다.
도커파일은 루트 폴더에 생성 후 작성해줍니다.
FROM ubuntu:22.04
RUN apt-get update
RUN apt-get install -y openjdk-17-jdk
WORKDIR /app
COPY ./build/libs/k8s-test-0.0.1-SNAPSHOT.jar ./app.jar
CMD ["java", "-jar", "app.jar"]
EXPOSE 8080
인텔리제이 터미널에 아래 명령어를 입력합니다.
docker build -t k8s-test-iamge .

이미지가 생성되었으면, 바로 실행합니다.
8081로 포트를 매핑해보겠습니다.
docker run -p 8081:8080 k8s-test-image

이렇게 실행 되었습니다.
이렇게 8081로 매핑되어 방금 만든 컨트롤러의 return값을 확인할 수 있습니다.

이렇게 직접 jar파일을 뽑아서 도커 이미지 생성 후 실행까지 해보았습니다. 도커파일을 바탕으로 생성한 이미지를 다른 컴퓨터에서 실행해도 동일한 설정으로 실행할 수 있습니다.