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개 생성
=> 깃에 푸시 하고
키 생성
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랑 경로 주의)
=> 아래 사진처럼 모두 실행되서 완료되면 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
@도커까지 깃 액션에서 처리
1. 토큰을 만든다 => RWD가능하게
2. 토큰 생성 확인
3. Git에 추가
4. 실행되는지 확인하면 된다.
zip 으로 묶어서 보내서 속도 개선
Docker로 보내고 EC2가 pull 해서 사용
단축된 시간을 확인할 수 있음.