Springboot앱을 Docker로 Build해서 Ec2에 띄우기

심주흔·2023년 10월 9일
0
post-thumbnail

AWS Ec2 인스터스와 Docker을 연결하여 Springboot 앱을 실행시켜보자

🐳 Dockerfile 만들기

일단 IntelliJ에서 Dockerfile(확장자 없음)을 루트 폴더에 만든다.

해당 코드를 Dockerfile에 추가

FROM openjdk:17-jdk-slim	//자바버전
ADD /build/libs/*.jar app.jar	//Gradble로 빌드해서 해당 위치에 생성됨을 표시
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]		//앤드 포인트

🐳 Git에 추가

🐳 AWS Ec2 리눅스에 접속

(Docker는 설치되어 있어야한다.)

🐋 관리자 모드로 설정

sudo su -

🐋 여기서 잠깐!
java가 설치 되어 있어야 하므로 해당 명령어로 자바를 설치한다.

sudo apt update
sudo apt install openjdk-17-jdk

🐋 방금 깃에 올린 리파지토리를 클론한다.

git clone https://github.com/BE-Spring-Study/springboot3.2

명령어 ll로 파일이 잘 있는지 확인

🐋 경로 변경

cd springboot3.2/

🐋 gradlew 설치 후 실행

sh gradlew 		//설치
sh gradlew build 	//실행

🐋 springboot3.2 폴더에 build 가 있는지 확인 후 접속

cd build

🐋 이후 또 libs 폴더로 접속 (최종적인 주소 ~/springboot3.2/build/libs)

cd libs

🐋 명령어 ll을 실행하면 .jar 파일을 확인할 수 있다.

🐳 Springboot 앱 실행

🐋 이후 명령어를 실행하면 springboot 앱을 실행할 수 있다.

java -jar springboot3-2-0.0.1-SNAPSHOT.jar

🐋 인스턴스의 보안 인바운드 규칙을 정의해준다. 기존 22번 포트만 열려있던 규칙에서 8080 포트도 추가해준다.

🐳 Docker로 접속하기

cd .. 두번 실행(프로젝트 루트폴더로 이동) > springboot3.2 폴더로 이동

🐋 Docker을 이용해서 빌드를 한다. 파일 뒤에 한 칸을 띄고 . 을 입력한다.

docker build -t springboot3.2 .

🐋 리눅스에서 온 요청을(8080 연결) Docker에 연결(8080에 연결)하는 옵션을 주고 실행한다.

docker run -p 8080:8080 springboot3.2

🐋 Docker을 통해 연결되는 모습 이후 해당 인스턴스 주소에 :8080을 입력하면 연결되는 모습을 볼 수 있다.

profile
이봐... 해보기는 했어?

0개의 댓글