4. 배포하기[maven 배포 스크립트 만들기]

dasd412·2022년 2월 2일
0

포트폴리오

목록 보기
27/41

vim depoly.sh 로 만든 배포 스크립트이다.

./mvnw clean install -DskipTests 는 테스트 스킵 설치를 뜻한다.

cp REPOSITORY/REPOSITORY/PROJECT_NAME/target/*.jar $REPOSITORY/

에서 target 디렉토리는 maven 빌드 시 jar 파일이 생기는 곳이다.

#!/bin/bash

REPOSITORY=/home/ec2-user/app/step1
PROJECT_NAME=RemakeDiabetesDiaryAPI

cd $REPOSITORY/$PROJECT_NAME/

echo "> Git Pull"

git pull

echo "> 프로젝트 build 시작"

./mvnw clean install -DskipTests

echo "> step1 디렉토리로 이동"

cd $REPOSITORY

echo "> build 파일 복사 !"

cp $REPOSITORY/$PROJECT_NAME/target/*.jar $REPOSITORY/

echo "> 현재 구동중인 애플리케이션 pid 확인"
CURRENT_PID=$(pgrep -f ReFacDiabetesDiary-1.0-SNAPSHOT.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 \
    -Dspring.config.location=classpath:/application.properties,/home/ec2-user/app/application-oauth.properties,/home/ec2-user/app/application-real-db.properties \
		-Dspring.profiles.active=real \
		 $REPOSITORY/$JAR_NAME 2>&1 &

h2 db is in use 오류 뜰 경우
1. ec2 linux 에서 자바 프로세스 찾기
ps aux|grep java
2. 프로세스 죽이기
kill -9 pid

profile
시드 레벨 스타트업의 2호 직원으로서 백엔드 시스템의 70%를 설계 및 개발하였고, TIPS 5억 투자 유치에 기여한 서버 개발자입니다. (Go/Python/MSA/Spring)

0개의 댓글