🔻DevOps/Docker

[Docker] Java11 + Spring Boot + AWS EC2 프로젝트 배포하기

_니지 2022. 12. 24. 22:38

스프링부트 프로젝트를 도커를 통해서 EC2에 배포하고자 한다

로컬에서 스프링부트 프로젝트를 빌드하고

이 빌드한 것을 도커 이미지를 만든 후 도커 허브 리포지토리에 push한다.

EC2에서 도커 허브 리포지토리를 통해 이미지를 pull하고

명령어를 입력해서 실행하는 과정을 거쳐 배포할 수 있다.

 

❗Dockerfile 생성하기

# open jdk java11 버전의 환경
FROM openjdk:11-jdk

# JAR_FILE 변수 정의 -> 기본적으로 jar file이 2개이기 때문에 이름을 특정해야함
ARG JAR_FILE=./build/libs/careerup-0.0.1-SNAPSHOT.jar

# JAR 파일 메인 디렉토리에 복사
COPY ${JAR_FILE} app.jar

# 시스템 진입점 정의
ENTRYPOINT ["java","-jar","/app.jar"]

 

 

❗스프링부트 프로젝트 빌드하기

https://radiant515.tistory.com/322

 

[Spring] Spring 프로젝트 빌드하기

❗ 프로젝트 빌드 파일 생성

radiant515.tistory.com

 

 

❗Docker 설치

로컬 컴퓨터와 EC2에 각각 도커를 설치해주어야 한다

아래는 윈도우와 우분투에서 설치하는 방법 안내이다!

https://radiant515.tistory.com/315

 

[Docker] 윈도우11 Docker 설치(WSL2 설치 포함)

❗Docker 설치 https://www.docker.com/ Docker: Accelerated, Containerized Application Development Docker is a platform designed to help developers build, share, and run modern applications. We handle the tedious setup, so you can focus on the code. www.d

radiant515.tistory.com

https://radiant515.tistory.com/318

 

[Docker] 우분투 18.04 Docker 설치하기

❗Docker 오래된 버전 삭제하기 이전에 깔았던 Docker가 있다면 삭제 후 새로운 버전을 깔기 위해 명령어를 실행한다 sudo apt-get remove docker docker-engine docker.io containerd runc ❗Docker 설치 sudo apt update sudo

radiant515.tistory.com

 

 

❗Docker Hub

Docker Hub를 통해 이미지를 push하고 pull할 것이기 때문에 먼저 회원가입 후 로그인까지 실시한다.

https://hub.docker.com/

 

Docker Hub Container Image Library | App Containerization

Deliver your business through Docker Hub Package and publish apps and plugins as containers in Docker Hub for easy download and deployment by millions of Docker users worldwide.

hub.docker.com

 

 

리포지토리를 클릭 후 create repository 누르기
리포지토리 이름을 적어주고 create해준다
이미지를 올릴 도커 리포지토리를 생성 완료

 

 

❗Docker Image 만들기

프로젝트를 빌드한 것을 도커 이미지로 만들기 위한 과정이다.

아래의 과정은 스프링부트 프로젝트 루트경로에서 실행해야한다.

 

# docker build -t tokyj515/careerup .
docker build -t [도커아이디/도커리포지토리이름] .

프로젝트에서 terminal을 누른 후 계정명과 프로젝트명으로 이미지를 생성한다

 

docker images

생성된 이미지 확인
도커 웹앱에서도 확인할 수 있다.

 

 

❗Docker Hub에 Push하기

docker login

도커에 로그인을 먼저 실시

 

docker push tokyj515/careerup

만든 이미지를 허브 리포지토리에 푸시한다

 

 

❗EC2에서 Image Pull하기

EC2 ip에 접속한 후 아래의 명령어를 실행한다

 

docker pull tokyj515/careerup

EC2에 접속해서 허브 리포지토리에 푸시했던 이미지를 풀한다

 

# host port와 container port를 연결하기 위해 포트가 2개 적혀있다
docker run -d -p 8080:8080 tokyj515/careerup

생성된 이미지로 컨테이너를 실행

 

ip로 접속한 결과를 확인할 수 있다
프로젝트의 api 문서에도 접근 가능하다

 

 

컨테이너를 확인하는 방법도 있다

 

 

 

728x90
반응형