SpringBoot로 Docker Image 만들어보기

.·2021년 11월 8일
1
  1. IntelliJ - New Project - Spring Initializr - 새로운 스프링 프로젝트 생성
  2. root에 dockerfile 파일 생성 후 아래 코드 붙여넣기
    FROM openjdk:17-jdk-alpine	// 어떤 image를 사용할 것인가
    ARG JAR_FILE=build/libs/*.jar	// jar 파일로 만들어라
    COPY ${JAR_FILE} demo-0.0.1-SNAPSHOT.jar	// 실행
    ENTRYPOINT ["java","-jar","/demo-0.0.1-SNAPSHOT.jar"]
    • 내 컴퓨터에 깔려있는 jdk version프로젝트의 자바 버전생성할 docker image의 자바 버전을 모두 맞춰주어야지 아래 오류로부터 자유로울수 있었다!
      Exception in thread "main" java.lang.UnsupportedClassVersionError: com/example/docker/DockerApplication has been compiled by a more recent version of the Java Runtime (class file versi
      on 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
  3. bootJar로 build

    JAR_FILE=build/libs 디렉토리 안에 jar 파일이 생긴다.
  4. terminal로 jar 파일 생성, 이미지 빌드
    docker build -t docker_hub_id/docker_img_name .
  5. 도커 파일 실행
    docker run docker_hub_id/docker_img_name
    위에서 만든 도커 이미지를 실행하면
    인텔리제이에서 스프링부트 어플리케이션이 뜨는 것을 볼 수 있고

    Docker Desktop에서 실행 중인 이미지를 확인할 수 있다

    위와 같이 Spring Application이 실행된다.
  6. Docker Hub에 도커 이미지 올리기
    docker push docker_hub_id/docker_img_name
  7. ec2에 접속해서 올린 도커 이미지 다운, 실행해보기
    • MobaXTerm으로 접속 (Windows)
      • ec2 서버에 Docker가 없다면 다운
        sudo yum install docker
        sudo systemctl start docker
      • docker image 다운
        sudo docker pull docker_hub_id/docker_img_name
      • docker 이미지로 SpringBoot Application 실행
        sudo docker run -p 9000:8080 docker_hub_id/docker_img_name

0개의 댓글