반응형
1. deploy.sh 파일 수정
#3. server checking 부분 추가됨
#!/bin/bash
# 1. env variable
source ./var.sh
echo "1. evn variable setting complete"
# 2. cron delete
touch crontab_delete
crontab crontab_delete
rm crontab_delete
echo "2. cron delete complete"
# 3. server checking
if [ -n "${PROJECT_PID}" ]; then
# re delpoy
kill -9 $PROJECT_PID
echo "3. project kill complete"
else
# first deploy
# 3-1. apt update, 표준 출력은 휴지통으로 이동
sudo apt-get -y update 1>/dev/null
echo " 3-1. apt-get update complete"
# 3-2. jdk install
sudo apt-get -y install openjdk-11-jdk 1>/dev/null
echo " 3-2. jdk install complete"
# 3-3. timezone
sudo timedatectl set-timezone Asia/Seoul
echo " 3-3. timezone setting complete"
fi
-n 명령어는 따라오는 문자열의 길이가 0 이상이면 참
1>/dev/null 명령어는 표준 출력 결과를 휴지통으로 이동시켜버림
2. deploy.sh 파일 수정
#4. project folder delete & #5. git clone & 6 & 7 build 부분 추가됨
기존 깃 다운로드 받은 폴더 삭제 & 깃 프로젝트 다운로드(복제) & 빌드 후 jar 파일 생성
apt-get update
apt-get install
2가지는 동기식
#!/bin/bash
# 1. env variable
source ./var.sh
echo "1. evn variable setting complete"
# 2. cron delete
touch crontab_delete
crontab crontab_delete
rm crontab_delete
echo "2. cron delete complete"
# 3. server checking
if [ -n "${PROJECT_PID}" ]; then
# re delpoy
kill -9 $PROJECT_PID
echo "3. project kill complete"
else
# first deploy
# 3-1. apt update, 표준 출력은 휴지통으로 이동
sudo apt-get -y update 1>/dev/null
echo " 3-1. apt-get update complete"
# 3-2. jdk install
sudo apt-get -y install openjdk-11-jdk 1>/dev/null
echo " 3-2. jdk install complete"
# 3-3. timezone
sudo timedatectl set-timezone Asia/Seoul
echo " 3-3. timezone setting complete"
fi
# 4. project folder delete
rm -rf ${HOME}/${PROJECT_NAME}
echo "4. project folder delete complete"
# 5. git clone
git clone https://github.com/${GITHUB_ID}/${PROJECT_NAME}.git
sleep 3s
echo "5. git clone complete"
# 6. gradlew 실행 권한 주기
chmod u+x ${HOME}/${PROJECT_NAME}/gradlew
echo "6. gradlew u+x complete"
# 7. build project
cd ${HOME}/${PROJECT_NAME}
./gradlew build
echo "7. gradle build complete"
3. jar 파일 실행해 보기
java -jar -Dspring.profiles.active=prod [jar파일명]
4. deploy.sh 파일 수정
#8. 서버 시작하는 부분 추가
#!/bin/bash
# 1. env variable
source ./var.sh
echo "1. evn variable setting complete"
# 2. cron delete
touch crontab_delete
crontab crontab_delete
rm crontab_delete
echo "2. cron delete complete"
# 3. server checking
if [ -n "${PROJECT_PID}" ]; then
# re delpoy
kill -9 $PROJECT_PID
echo "3. project kill complete"
else
# first deploy
# 3-1. apt update, 표준 출력은 휴지통으로 이동
sudo apt-get -y update 1>/dev/null
echo " 3-1. apt-get update complete"
# 3-2. jdk install
sudo apt-get -y install openjdk-11-jdk 1>/dev/null
echo " 3-2. jdk install complete"
# 3-3. timezone
sudo timedatectl set-timezone Asia/Seoul
echo " 3-3. timezone setting complete"
fi
# 4. project folder delete
rm -rf ${HOME}/${PROJECT_NAME}
echo "4. project folder delete complete"
# 5. git clone
git clone https://github.com/${GITHUB_ID}/${PROJECT_NAME}.git
sleep 3s
echo "5. git clone complete"
# 6. gradlew 실행 권한 주기
chmod u+x ${HOME}/${PROJECT_NAME}/gradlew
echo "6. gradlew u+x complete"
# 7. build project
cd ${HOME}/${PROJECT_NAME}
./gradlew build
echo "7. gradle build complete"
# 8. start jar
nohup java -jar -Dspring.profiles.active=prod ${JAR_PATH} 1>${HOME}/log.out 2>${HOME}/err.out &
echo "8. start server complete"
출처: 이지업클래스 | 개발자를 위한 AWS DevOps 입문 [CI/CD 무중단 배포]
https://easyupclass.e-itwill.com/course/course_view.jsp?id=74&rtype=0&ch=course
반응형
':SERVER > AWS' 카테고리의 다른 글
[easyuplcass] Elastic Beanstalk (0) | 2022.10.19 |
---|---|
[easyupclass] EC2 서버에 스크립트로 배포하기(3) (0) | 2022.09.06 |
[easyupclass] EC2 서버에 스크립트로 배포하기(1) (0) | 2022.09.05 |
[easyupclass] EC2 서버 생성 및 고정 IP 설정, 환경변수 저장 (0) | 2022.09.05 |
[easyupclass] v1 버전, v2 버전 (0) | 2022.09.05 |