[CI/CD]spring boot post build task

leocodms·2021년 10월 1일
0

CI/CD

목록 보기
1/2

QueryDSL 도입 후,
nohup + & 으로 jar파일 실행하니 계속해서 오류가 발생했다.

build과정에서 문제가 있었나 확인을 위해
jenkins가 build한 jar파일을 그대로 서버 쉘 환경에서 실행했다.

잘 동작한다.

그렇다면 배포 스크립트가 잘못되었구나!
이전 post build script는 다음과 같다.

nohup java -jar /var/lib/jenkins/workspace/AISM_PRO_SPRING_BOOT/build/libs/aismpro-0.0.1-SNAPSHOT.jar &

그냥 jar파일 찾아서 백그라운드에서 실행한다.

확인해 보니 nohup은 이전 실행 pid를 계속 잡고 있더라..

여기서 문제가 생긴 것으로 판단하여 이전에 배포된 jar파일이 실행중이라면 (=pid가 있다면),
kill하고 새로운 pid를 할당하도록 post build script를 수정했다.

PROC=ps aux | grep aismpro
if [[ $PROC == "aismpro" ]];then echo "process is running.."; sudo kill -15 ps -ef | grep aismpro| grep -v grep | awk '{print $2}'; else echo "process is not running.."; fi
nohup java -jar /var/lib/jenkins/workspace/AISM_PRO_SPRING_BOOT/build/libs/aismpro-0.0.1-SNAPSHOT.jar &

이렇게 수정했으나,
역시 호락호락하지 않다.

혹시 스크립트 문법에 문제가 있나 의심스러워서
서버 쉘 환경에서 동일한 명령어로 실행해 보았다.

잘된다.

그럼 jenkins post build script 실행과 서버 스크립스 실행과 싱크(..?문법)에 차이(변형)이 발생한다고 합리적으로 의심할 수 있다.

그래서 이걸 찾으려니 귀찮아져서
그냥 sh 파일 만들어서 그 자체를 서버에서 실행하도록 post build script를 수정했다.

아주 잘된다.

어렵다 jenkins..

profile
Backend Developer

0개의 댓글