우선, 기존 app/step1과 step11 디렉토리에 있는 파일을 다 지워버려야한다. 따라서 디렉토리 삭제 명령을 실행해야한다.
삭제 권한이 없는 로컬디렉토리까지 지우는 명령어
rm -rf {디렉토리명}
git 설치와 자바를 설치하는 과정은 건너뛰고 clone을 진행하자.
git clone https://github.com/Youthhing/springboot1.git
이후 cd springboot1로 이동, 권한 추가를 하고 ./gradlew test를 진행해주자.
8.2 배포 스크립트 만들기
배포 스크립트를 만드는 이유는 배포 과정에서 명령어를 하나하나 작성하기 힘드니까 미리 과정에 대한 내용을 쉘스크립트로 만드는 것.
자, 우선 다음과 같이 배포스크립트 deploy.sh를 만들었다.
#!/bin/bash
REPOSITORY=/home/ec2-user/app/step1
PROJECT_NAME=springboot1
cd $REPOSITORY/$PROJECT_NAME/
echo "> Git Pull"
git pull
echo "> 프로젝트 Build 시작"
./gradlew build
echo "> step1 디렉토리 이동"
cd $REPOSITORY
echo "> Build 파일 복사"
cp $REPOSITORY/$PROJECT_NAME/build/libs/*.jar $REPOSITORY/
echo "> 현재 구동중인 애플리케이션 pid 확인"
CURRENT_PID=$(pgrep -f ${PROJECT_NAME}.*.jar)
echo "현재 구동중인 어플리케이션 pid: $CURRENT_PID"
if [ -z "$CURRENT_PID" ]; then
echo "> 현재 구동중인 애플리케이션이 없으므로 종료하지 않습니다."
else
echo "> kill -15 $CURRENT_PID"
kill -15 $CURRENT_PID
sleep 5
fi
echo "> 새 어플리케이션 배포"
JAR_NAME=$(ls -tr $REPOSITORY/ | grep jar | tail -n 1)
echo "> JAR Name: $JAR_NAME"
nohup java -jar $REPOSITORY/$JAR_NAME 2>&1 &
이제 nohup.out을 확인할거야 제밟 ㅈㅂㅈㅂㅂㅈㅈㅂㅈㅂㅂ..!! 오류떠줘...
오류가 안뜨고 무난ㄴ하게 실행이 되었다... 아 이러면 github에 commit한 코드가 문제라는건가.
해서, 내 github을 자세히 들여다봤다.
application-oauth.properties를 clone 해오지 못해서 오류가 발생해야한다! 라는 주제로 오류를 기다리고 있었는데 application-oauth.properties파일이..? 내 github에 올라가있었다.... 이런 바보
따라서, github에 올라간 파일을 삭제하고 로컬 디렉토리에도 삭제했다. 그리고 진행을 하니
해결완료!!!!!!!!!!!!!!!!!!!!!!!!!!!!
'BE > 6기 코테이토 - Spring Study' 카테고리의 다른 글
5회. Ch9 - 코드가 푸시되면 자동으로 배포해보자- Travis CI 배포 자동화 (0) | 2023.02.22 |
---|---|
4회(2). Ch8 - EC2서버에 프로젝트를 배포해보자 (0) | 2023.02.17 |
4회(1). Ch8 - EC2서버에 프로젝트를 배포해보자 (0) | 2023.02.15 |
4회. Ch7 - AWS에 데이터베이스 환경을 만들어보자. - AWS RDS (0) | 2023.02.14 |
4회. ch6 AWS 서버 환경을 만들어보자 - AWS EC2 (0) | 2023.02.11 |