티스토리 뷰
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
반응형
'개발 > Spring' 카테고리의 다른 글
스프링 프로젝트 AWS에 올리기 - (3) EC2 인스턴스에 Java 설치 (0) | 2021.08.17 |
---|---|
스프링 프로젝트 AWS에 올리기 - (2) EC2 인스턴스 생성, Elastic IP 할당 (0) | 2021.08.16 |
스프링 프로젝트 AWS에 올리기 - (1) AWS IAM (0) | 2021.08.16 |
[에러 해결] No serializer found for class (0) | 2021.08.14 |
[에러 해결] HttpMediaTypeNotAcceptableException (1) | 2021.08.14 |
댓글