vim depoly.sh 로 만든 배포 스크립트이다.
./mvnw clean install -DskipTests 는 테스트 스킵 설치를 뜻한다.
cp 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