250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- dfs
- 유니크제약조건
- 일대다
- 비관적락
- execute
- 동적sql
- 연관관계
- PS
- CHECK OPTION
- JPQL
- BOJ
- querydsl
- eager
- 백트래킹
- shared lock
- 지연로딩
- 다대다
- exclusive lock
- 이진탐색
- 낙관적락
- 다대일
- 스프링 폼
- fetch
- FetchType
- 연결리스트
- 데코레이터
- 스토어드 프로시저
- 힙
- SQL프로그래밍
- 즉시로딩
Archives
- Today
- Total
흰 스타렉스에서 내가 내리지
[신]배포 스크립트 만들기 - EC2, Amazon Linux 본문
728x90
github에는 업로드되지 않은 설정파일들을 생성, 붙여넣기
vim /home/ec2-user/app/application-oauth.yml
vim /home/ec2-user/app/application.yml
shell 파일 생성
vim ~/app/step1/deploy.sh
#!/bin/bash
REPOSITORY=/home/ec2-user #1
PROJECT_NAME=termterm-BE
cd $REPOSITORY/$PROJECT_NAME/ #2
echo "> git pull 시작"
git pull
echo "> 프로젝트 build 시작"
./gradlew build --exclude-task test #4
echo "> 홈 디렉토리로 이동"
cd $REPOSITORY
echo "> Build 파일 복사"
cp $REPOSITORY/$PROJECT_NAME/build/libs/*.jar $REPOSITORY/ #5
echo "> 현재 구동중인 애플리케이션 pid 확인"
CURRENT_PID=$(lsof -ti:8080) #6
echo "현재 구동중인 애플리케이션 pid: $CURRENT_PID"
if [ -z "$CURRENT_PID" ]; then #7
echo "> 현재 구동 중인 애플리케이션이 없으므로 종료하지 않습니다."
else
echo "> kill -9 $CURRENT_PID"
kill -9 $CURRENT_PID
sleep 5
fi
echo "> 새 애플리케이션 배포"
JAR_NAME=$(ls -tr $REPOSITORY/ | grep jar | tail -n 1) #8
echo "> JAR Name : $JAR_NAME"
nohup java -jar -Dspring.config.location=/home/ec2-user/application-prod.yml,/home/ec2-user/application-auth.yml -Dspring.profiles.active=prod $REPOSITORY/$JAR_NAME 2>&1 & #9
#5 :
build의 결과물인 jar 파일을 복사해 jar 파일을 모아둔 위치로 복사합니다.
#8 :
새로 실행할 jar 파일명을 찾는다.
여러 jar 파일이 생기기 때문에 tail -n로 가장 나중의 jar 파일(최신파일)을 변수에 저장한다.
생성한 스크립트에 실행 권한 추가
chmod +x ./deploy.sh
./deploy.sh
#!/bin/bash
REPOSITORY=/home/ec2-user #1
PROJECT_NAME=Iterview-BE
cd $REPOSITORY/$PROJECT_NAME/ #2
echo "> git pull 시작"
git pull
echo "> 프로젝트 build 시작"
./gradlew build --exclude-task test #4
echo "> 홈 디렉토리로 이동"
cd $REPOSITORY
echo "> Build 파일 복사"
cp $REPOSITORY/$PROJECT_NAME/build/libs/*.jar $REPOSITORY/ #5
echo "> 현재 구동중인 애플리케이션 pid 확인"
CURRENT_PID=$(lsof -ti:8080) #6
echo "현재 구동중인 애플리케이션 pid: $CURRENT_PID"
if [ -z "$CURRENT_PID" ]; then #7
echo "> 현재 구동 중인 애플리케이션이 없으므로 종료하지 않습니다."
else
echo "> kill -9 $CURRENT_PID"
kill -9 $CURRENT_PID
sleep 5
fi
echo "> 새 애플리케이션 배포"
JAR_NAME=$(ls -tr $REPOSITORY/ | grep jar | tail -n 1) #8
echo "> JAR Name : $JAR_NAME"
nohup java -jar -Dspring.config.location=/home/ec2-user/application.yml, $REPOSITORY/$JAR_NAME 2>&1 & #9
'AWS' 카테고리의 다른 글
IAM ROLE, CI/CD, Travis CI, S3, CodeDeploy, IAM ROLE (0) | 2023.01.21 |
---|---|
스프링 부트 프로젝트로 RDS 접근하기, RDS 설정 (0) | 2023.01.20 |
EC2 서버에 프로젝트 배포하기 - git clone, test (0) | 2023.01.20 |
Amazon Linux EC2에서 RDS 접근하기 (0) | 2023.01.20 |
IntelliJ에 RDS 연결 (0) | 2023.01.20 |