흰 스타렉스에서 내가 내리지

[신]배포 스크립트 만들기 - EC2, Amazon Linux 본문

AWS

[신]배포 스크립트 만들기 - EC2, Amazon Linux

주씨. 2023. 1. 20. 17:44
728x90

github에는 업로드되지 않은 설정파일들을 생성, 붙여넣기

vim /home/ec2-user/app/application-oauth.yml
vim /home/ec2-user/app/application.yml

 

 

shell 파일 생성

vim ~/app/step1/deploy.sh

 

#!/bin/bash

REPOSITORY=/home/ec2-user  #1
PROJECT_NAME=termterm-BE

cd $REPOSITORY/$PROJECT_NAME/  #2

echo "> git pull 시작"
git pull

echo "> 프로젝트 build 시작"
./gradlew build --exclude-task test    #4

echo "> 홈 디렉토리로 이동"
cd $REPOSITORY

echo "> Build 파일 복사"
cp $REPOSITORY/$PROJECT_NAME/build/libs/*.jar $REPOSITORY/  #5

echo "> 현재 구동중인 애플리케이션 pid 확인"
CURRENT_PID=$(lsof -ti:8080)     #6

echo "현재 구동중인 애플리케이션 pid: $CURRENT_PID"

if [ -z "$CURRENT_PID" ]; then            #7
        echo "> 현재 구동 중인 애플리케이션이 없으므로 종료하지 않습니다."
else
    echo "> kill -9 $CURRENT_PID"
    kill -9 $CURRENT_PID
    sleep 5
fi

echo "> 새 애플리케이션 배포"

JAR_NAME=$(ls -tr $REPOSITORY/ | grep jar | tail -n 1)    #8

echo "> JAR Name : $JAR_NAME"

nohup java -jar -Dspring.config.location=/home/ec2-user/application-prod.yml,/home/ec2-user/application-auth.yml -Dspring.profiles.active=prod $REPOSITORY/$JAR_NAME 2>&1 &       #9

#5 :

build의 결과물인 jar 파일을 복사해 jar 파일을 모아둔 위치로 복사합니다.

 

#8 : 

새로 실행할 jar 파일명을 찾는다. 

여러 jar 파일이 생기기 때문에 tail -n로 가장 나중의 jar 파일(최신파일)을 변수에 저장한다. 

 

 

생성한 스크립트에 실행 권한 추가

chmod +x ./deploy.sh

 

 

./deploy.sh

 

 

#!/bin/bash

REPOSITORY=/home/ec2-user  #1
PROJECT_NAME=Iterview-BE

cd $REPOSITORY/$PROJECT_NAME/  #2

echo "> git pull 시작"
git pull

echo "> 프로젝트 build 시작"
./gradlew build --exclude-task test    #4

echo "> 홈 디렉토리로 이동"
cd $REPOSITORY

echo "> Build 파일 복사"
cp $REPOSITORY/$PROJECT_NAME/build/libs/*.jar $REPOSITORY/  #5

echo "> 현재 구동중인 애플리케이션 pid 확인"
CURRENT_PID=$(lsof -ti:8080)     #6

echo "현재 구동중인 애플리케이션 pid: $CURRENT_PID"

if [ -z "$CURRENT_PID" ]; then            #7
        echo "> 현재 구동 중인 애플리케이션이 없으므로 종료하지 않습니다."
else
    echo "> kill -9 $CURRENT_PID"
    kill -9 $CURRENT_PID
    sleep 5
fi

echo "> 새 애플리케이션 배포"

JAR_NAME=$(ls -tr $REPOSITORY/ | grep jar | tail -n 1)    #8

echo "> JAR Name : $JAR_NAME"

nohup java -jar -Dspring.config.location=/home/ec2-user/application.yml, $REPOSITORY/$JAR_NAME 2>&1 &       #9