티스토리 뷰

EC2컨테이너에 deploy.sh 파일을 만든다.

- vim deploy.sh

 

아래 내용을 작성한다.

REPOSITORY=/home/ubuntu
PROJECT_NAME= 백엔드_디렉토리명
PROJECT_NAME2= 프론트엔드_디렉토리명

echo "> 백엔드 프로젝트 디렉토리로 이동"

cd $REPOSITORY/$PROJECT_NAME/

echo "> Git Pull 백엔드 프로젝트"

git pull

echo "> 백엔드 프로젝트 Build 시작"

./gradlew build

echo "> 기본 디렉토리로 이동"

cd $REPOSITORY

echo "> Build 파일 복사"

cp $REPOSITORY/$PROJECT_NAME/build/libs/*.jar $REPOSITORY/

echo "> 프론트엔드 프로젝트 디렉토리로 이동"

cd $REPOSITORY/$PROJECT_NAME2

echo "> Git Pull 프론트엔드 프로젝트"

git pull

cd build

echo "> 프론트엔트 프로젝트 Build 시작"

npm run build


echo "> 현재 구동중인 애플리케이션 pid 확인"

CURRENT_PID=$(pgrep -f '백엔드_프로젝트_이름')

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

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

else
    echo "> kill -15 $CURRENT_PID"
    kill -15 $CURRENT_PID
    sleep 5

    CURRENT_PID2=$(pgrep -f '백엔드_프로젝트_이름')
    if [ -z $CURRENT_PID2 ]; then
        echo ">정상종료되었습니다."
    else
        echo ">강제 종료합니다."
        kill -9 $CURRENT_PID2
        sleep 5
    fi
fi

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

cd $REPOSITORY

JAR_NAME=$(ls $REPOSITORY/ | grep '백엔드_프로젝트_이름' | tail -n 1)

echo "> JAR Name: $JAR_NAME"

nohup java -jar $REPOSITORY/$JAR_NAME &

해당 폴더에서 쉘 스크립트를 실행한다.

- ./deploy.sh

728x90
반응형
댓글
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함