TIL

[240114] AWS, docker로 수동 배포하기

진진리 2024. 1. 15. 10:01
728x90
CD를 구축하기 전에 먼저 배포 과정을 익히기 위해서 수동 배포를 해보려고 한다.
지난번에 AWS RDB와 EC2를 만들었고 그 이후 과정부터 진행하고자 한다.

 

gradle 빌드하여 jar 파일 생성

인텔리제이에서 스프링 부트 프로그램을 빌드하여

build > libs > [프로젝트명]-0.0.1-SANPSHOT.jar 파일을 생성한다.

터미널에서 해당 파일이 있는 곳으로 이동 후 java -jar [프로젝트명]-0.0.1-SNAPSHOT.jar으로 프로그램이 잘 실행되는지 확인한다. 

 

jar 파일로 이미지를 생성하여 도커허브에 push

jar파일이 있는 위치에 Dockerfile을 생성한다.

FROM openjdk:17
COPY Sappun-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]

 

cd 명령어를 통해 도커 파일이 있는 곳으로 터미널 위치를 옮긴다.

도커 이미지를 빌드한다.

docker build --no-cache -t [도커허브_아이디]/[이미지이름] .

 

도커 이미지 생성 확인

이미지를 run한 후 컨테이너가 정상적으로 작동되는지 확인한다.

docker images

 

로그인 후 만든 이미지를 도커허브에 push한다.

docker login

docker push [도커허브_아이디]/[이미지이름]

 

AWS EC2 ssh접속

터미널에서 pem 키가 있는 곳으로 이동한다.

pem 키에 읽기 권한을 부여한다.

attrib +R [pemKey이름].pem
// or
chmod 400 [pemKey이름].pem

 

ssh 접속

sudo ssh -i {pemKeyName}.pem ubuntu@{탄력적 IP주소}

# 또는 관리자 권한으로 cmd 실행 후
ssh -i {pemKeyname}.pem ubuntu@{탄력적 IP주소}

 

EC2 접속 후 도커 설치 (한 줄씩 실행)

sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common 
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" 
sudo apt update 
apt-cache policy docker-ce
sudo apt install docker-ce

 

EC2 도커에서 이미지 받아 실행하기

도커에 이미지 pull 하기

sudo docker pull '이미지명'

 

 

받은 이미지 보기

sudo docker images -a

 

받은 이미지 실행하기

sudo docker run '이미지명'