ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Docker로 AWS EC2 배포하기
    SpringBoot 2023. 8. 2. 09:37

    로컬 환경은 다음과 같습니다.

    • Window11, Intellij, Spring Boot, Gradle

    진행과정

    • Dockerfile을 build해서 docker image파일을 생성
    • docker image 파일을 dockerhub에 push
    • AWS EC2에서 dockerhub에 존재하는 docker image 파일을 pull로 받아옴
    • docker run명령어를 통해 docker image파일을 실행

    스프링 프로젝트 생성

    • 스프링 프로젝트 생성에 대해서는 생략하겠습니다.

    dockerfile 생성

    루트 폴더 아래 dockerfile을 생성하고, 위와 같이 생성하였습니다.

    • FROM
      • amazon corretto 17버전의 환경을 구성하였습니다.

     

    • ARG
      • JAR_FILE이라는 변수명에 build/libs/*.jar 표현식을 선언했다는 의미입니다.
      • build/libs 경로는 gradle로 빌드했을 때 jar 파일이 생성되는 경로입니다.

     

    • COPY
      • 위에서 선언한 JAR_FILE을 app.jar로 복사합니다.

     

    • ENTRYPOINT
      • jar파일을 실행하는 명령어 입니다.
      • 환경 설정을 분리해서 사용함으로 위와 같이 작성하였습니다.

     

    gradle 빌드

    터미널에 ./gradlew.bat build -x test로 빌드하면 build/libs 경로에 jar파일이 생성됩니다.

    DockerHub에 Repository생성

    dockerhub 사이트에 들어가서 회원가입을 하고 로그인을 합니다.

    • Repositories를 생성합니다.
    • 생성시에 visibillity는 public으로 합니다.

    Docker Image build

    docker build --build-arg DEPENDENCY=build/dependency -t {본인의 도커허브 ID/Repository} --platform linux/amd64 .
    

    위 명령어를 사용해서 dockerfile을 docker image로 빌드합니다.

    Docker Image push

    생성한 DockerHub의 Repository를 확인하면 명령어가 나오는데 해당 명령어를 입력해줍니다.

    만약 denied: requested access to the resource is denied 라는 문구가 나오면 로그인을 해주어야 합니다.

    • docker 로그인 명령어는 docker login입니다.

    AWS EC2

    해당 명령은 aws에 실행된 인스턴스에서 진행됩니다.

    도커 설치

    • $ sudo yum install docker

     

    도커 실행

    • $ sudo systemctl start docker

     

    도커 허브에 존재하는 이미지 파일 pull

    • $ sudo docker pull {본인의 DockerHub이름/Repository }

     

    도커 이미지를 통해 스프링 부트 애플리케이션 배포

    • $ sudo docker run -p 8080:8080 {본인의 DockerHub이름/Repository }
    • 백그라운드 실행하고 싶다면 -d 옵션을 추가
      • $ sudo docker run -d -p 8080:8080 {본인의 DockerHub이름/Repository }

     

    참조

    https://zzang9ha.tistory.com/360

     

Designed by Tistory.