카테고리 없음

Spring 빌드 자동화 / EC2 서버 Docker 실행

woogy99 2025. 6. 17. 15:17

AWS 인스턴스 생성 후

=>

sudo apt-get update
sudo apt-get upgrade 
sudo apt-get install openjdk-17-jdk


=> 복사 /usr/lib/jvm/java-17-openjdk-amd64
sudo nano ~/.bashrc

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin


source ~/.bashrc
mkdir source-folder
cd source-folder/

 

=> 여기까지 기존에 하던데로 완료하기.



1. 필수 패키지 설치

sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

 

 

2. 인증키 추가

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

 

 

3. 

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

 

 

 

4. 업데이트

 

 

5. Docker 설치

sudo apt-get install docker-ce docker-ce-cli containerd.io

 

6. 설치 확인

 

 

 

 

sudo service docker status

 

=> 여기까지 되면 OK.

 

 


 

=> 스프링 부트 프로젝트 경로에

파일 2개 생성

dockerignore
0.00MB
Dockerfile
0.00MB

 

 

 

=> 깃에 푸시 하고

키 생성

 

cd .ssh

ssh-keygen -t rsa
ssh-keygen -t ed25519 -b 4096 -C "깃 이메일 입력"

cat id_ed25519.pub >> authorized_keys

cat authorized_keys

=> 아래와 같이 나오면 완성

 

 

=> cat id_ed25519 

 

=> 깃 리포지토리 => 셋팅 => key 생성 =>  id_ed25519 복사해서 붙여넣기

 

Git Action =>  Java with Gradle 에서 아래 내용처럼 yml 생성 => (ip랑 경로 주의)

 

deploy.yml
0.00MB

 

 

=> 아래 사진처럼 모두 실행되서 완료되면 OK

 

 

=> 2개의 파일이 생성된걸 확인할 수 있음

 

 

=> 이미지 빌드

sudo docker build -t spring-app:latest .

 

 

 

=> 실행하기

sudo docker run -d --name spring-app -p 8080:8080 --restart unless-stopped spring-app:latest

 

실행 후 IP로 접속해보기

 

=> 아래와 같이 확인할 수 있음

 

 

Docker Hub에 올리기

 

sudo docker tag spring-app:latest woogy9999/spring-app:latest

sudo docker login

 

=> 도커 로그인해서 해당 코드 입력

 

 

 

=> 도커에 올리기

sudo docker push woogy9999/spring-app:latest

 

 

 

 

위와 같은 화면이 나오면 OK

 

 

 

 


WT (PowerShell) 등에서도 실행 가능

 

=> docker run -d --name spring-app -p 8080:8080 woogy9999/spring-app:latest

멈출때  => docker stop spring-app 

다시실행 => docker start spring-app

 

 

다시 커밋하고 변경사항 적용할때에는 아래처럼

@파일 삭제 후 빌드 다시 하고 실행

sudo docker rm -f spring-app
sudo docker build -t spring-app .
sudo docker run -d --name spring-app -p 8080:8080 spring-app

 

 

@ 이거는 도커에 로그인하고 푸쉬하는거 
sudo docker login
sudo docker tag spring-app woogy9999/spring-app:latest
sudo docker push woogy9999/spring-app:latest

@파워쉘 마찬가지로 삭제후 다시
docker rm spring-app
docker pull woogy9999/spring-app:latest
docker run -d --name spring-app -p 8080:8080 woogy9999/spring-app:latest

 

 


 

@도커까지 깃 액션에서 처리

 

deploy.yml
0.00MB

 

 

1. 토큰을 만든다 => RWD가능하게

 

 

2. 토큰 생성 확인

 

 

3. Git에 추가

 

4. 실행되는지 확인하면 된다.

 

zip 으로 묶어서 보내서 속도 개선

deploy (2).yml
0.00MB

 

 

 


Docker로 보내고 EC2가 pull 해서 사용

 

gradle3.yml
0.00MB

 

 

 

 

단축된 시간을 확인할 수 있음.