티스토리 뷰
이번에는 git을 push하고 서버에 올릴 때 AWS EC2에서 직접 디렉토리를 이동하여 git pull + 프로젝트 빌드 + 프로젝트 실행하는 경우 시간이 오래걸리고 번거롭다.
그래서 실행을 한번으로 위 작업들을 하도록 sh파일을 작성하도록 한다.
기본정보
- Spring Boot (Gradle 기준)
- AWS EC2
- Git clone 한 폴더
- Spring Boot와 맞는 Java버전 설치
.sh 파일 만들기
vi project.sh
: 해당 sh파일 위치는 "home/ec2-user", 프로젝트 위치는 "home/ec2-user/프로젝트 폴더" 이다.
: 해당 파일명은 "project.sh"로 만드는 방법이다.
: 다른 이름으로 하고 싶다면 "원하는이름.sh"으로 만들면 된다.
* Project.sh
echo " 현재 구동중인 프로젝트를 찾습니다."
echo "----------------------------------------"
CURRENT_PID=$(pgrep -f 프로젝트 폴더명)
echo "$CURRENT_PID"
if [ -z $CURRENT_PID ]; then
echo " 현재 구동중인 프로젝트를 종료하지 않습니다."
else
echo " 현재 구동중인 프로젝트를 종료합니다."
echo "> kill -2 $CURRENT_PID"
kill -9 $CURRENT_PID
sleep 5
fi
ROOT_PATH=/home/ec2-user
cd $ROOT_PATH/프로젝트 폴더명
echo " Git pull 을 실행합니다."
git pull
cd /
cd $ROOT_PATH/프로젝트 폴더명
echo "---------------------------------------"
echo " 프로젝트를 빌드합니다."
./gradlew build --exclude-task test
cd /
cd $ROOT_PATH/프로젝트 폴더명/build/libs
echo "---------------------------------------"
echo " 프로젝트를 실행합니다."
java -jar 설정한JAR파일명.jar
작성한 파일 저장방법
1. ESC 키를 눌러 Insert 모드에서 나오도록 한다.
2. :wq를 입력한다. (저장하고 나가기.)
작성한 파일 확인법
vi Project.sh
- 확인 후 파일 나가는 방법
:q! (나가기.)
- 파일 수정하기
1. a 키를 눌러 Insert 모드로 전환한다.
2. 수정한다.
3. :wq를 입력한다. (저장하고 나가기.)
* Project.sh 내용 설명
1. 실행 중 프로젝트를 종료한다.
-> git pull, 프로젝트 빌드 전 실행 중인 프로젝트를 종료하기 위해 작성한다.
+ 서버에서 프로젝트를 실행하고 있는데 깃이 업데이트 되어 있을 경우 종료하고 빌드 후 다시 서버에 올려야하기 위해 작성함.
CURRENT_PID=$(pgrep -f 프로젝트 폴더명)
echo "$CURRENT_PID"
if [ -z $CURRENT_PID ]; then
echo " 현재 구동중인 프로젝트를 종료하지 않습니다."
else
echo " 현재 구동중인 프로젝트를 종료합니다."
echo "> kill -2 $CURRENT_PID"
kill -9 $CURRENT_PID
sleep 5
fi
- CURRENT_PID
: 실행중인 프로젝트 PID값을 저장하는 변수
- IF ~ else ~ fi
: 실행중인 프로젝트를 찾아 실행중이면 종료한다.
: 실행중이지 않으면 넘어가게 된다.
2. 프로젝트를 GIT 최신으로 유지하기 위해 PULL한다.
ROOT_PATH=/home/ec2-user
cd $ROOT_PATH/프로젝트 폴더명
echo " Git pull 을 실행합니다."
git pull
- ROOT_PATH
: 프로젝트 최상위 폴더가 있는 ROOT 경로
- cd $ROOT_PATH/프로젝트 폴더명
: 프로젝트 디렉토리로 이동하는 명령어로 자신의 폴더명에 맞게 작성한다.
- git pull
: cd 명령어로 이동된 디렉토리에서 git pull를 하게 된다.
(단, clone했을 때 가져왔던 branch 기준으로 하게 된다.)
3. 해당 프로젝트를 빌드한다.
cd /
cd $ROOT_PATH/프로젝트 폴더명
echo "---------------------------------------"
echo " 프로젝트를 빌드합니다."
./gradlew build --exclude-task test
- ./gradlew build --exclude-tash test
: test를 제외하고 해당 프로젝트를 빌드하여 jar파일을 생성한다.
4. 프로젝트를 실행한다.
cd /
cd $ROOT_PATH/프로젝트 폴더명/build/libs
echo "---------------------------------------"
echo " 프로젝트를 실행합니다."
java -jar 설정한JAR파일명.jar
- cd $ROOT_PATH/프로젝트 폴더명/build/libs
: 3.에서 빌드를 하면 jar파일이 생성되는 디렉토리로 cd명령어를 통하여 이동한다.
Jar을 통하여 프로젝트를 실행하는 명령어
해당 sh파일은 A. 를 기준으로 작성되었음.
택1.
A. 백그라운드 실행 X, AWS 세션 종료시 프로젝트 종료됨.
java -jar 설정한JAR파일명.jar
B. 백그라운드 실행 O, AWS 세션 종료시 프로젝트 종료됨.
java -jar 설정한JAR파일명.jar &
C. 백그라운드 실행 O, AWS 세션 종료시 프로젝트 종료되지 않음.
nohup java -jar 설정한JAR파일명.jar &
sh 파일 실행하기
./project.sh
'AWS & DOCKER' 카테고리의 다른 글
Docker / 다중 Docker 환경 : 로컬과 Colima에서 명령어 전환하기 (0) | 2025.01.10 |
---|---|
Docker / Springboot + Nginx 빌드 후 Container에 올리기 (0) | 2022.05.13 |
Docker / 나만의 명령어 (0) | 2022.05.12 |
AWS / NginX 설치하여 Spring boot URL 포트번호 없애기 (0) | 2022.05.06 |
AWS / Spring boot 프로젝트 AWS EC2, RDS에 올리기 (0) | 2022.05.03 |
- Total
- Today
- Yesterday
- docker --context
- Docker
- oracle db
- mysql oracle
- linux 포트중복
- aws spring boot
- aws build
- git gitignore
- aws git pull
- Mapper namespcae
- SQL Mapper
- aws
- colima docker
- docker context
- nginx
- Linux caches
- Spring Artifact
- gitignore 적용안됨
- colima
- mybatis
- vue project
- 메모리 삭제
- Spring Group
- Mybatis vs JPA
- spring boot sh파일
- docker 명령어
- 리눅스 메모리 캐시
- aws git
- gitignore 적용오류
- vue npm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 |
30 | 31 |