Project 설정
Build Step 필자는 Spring boot Gradle프로젝트로 구성하는 중이여서 Gradle Script를 실행하여 war파일 만들 수 있도록 하였다.
Send files or execute commands over SSH 설정 1번 과정에서 war를 프로젝트내에 생성했다면 해당 파일을 배포 할 리눅스서버로 전송해야하기 때문에 하는 설정이다.
- Source files: Spring boot 프로젝트내에 war가 생성되는 경로이다.
- Remove prefix: 배포한 이후에는 삭제한다.
- Remote directory: 리눅스 서버에 전송 할 경로를 지정한다. 배포 할 경로는 미리 만들어 놔야한다.
Exec command는 위 과정을 마친 후 자동 실행 할 Script라고 생각하면 된다.
Jenkins-Project부분은 생성한 프로젝트명으로 바꿔주면된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
echo "PID Check..."
CURRENT_PID=$(ps -ef | grep java | grep "Jenkins-Project*" | awk '{print $2}')
echo "Running PID: {$CURRENT_PID}"
if [ -z "$CURRENT_PID" ]; then
echo "Project is not running"
else
echo "> kill -9 $CURRENT_PID"
kill -9 $CURRENT_PID
sleep 2
fi
echo "Deploy Project...."
nohup java -jar /home/tkdrl8908/spring_project/war/Jenkins-Project-0.0.1-SNAPSHOT.war >> /home/tkdrl8908/spring_project/logs/Jenkins-Project.log 2>&1 &
echo "Done"
빌드시작
위와 같이 설정을 마치고 프로젝트내에서 빌드시작을 누르면 아래와 같이 Gradle build를 하고 war폴더에 war파일까지 생성 된 것을 확인할 수 있다.
실행 포트 확인
아래 명령어를 입력하면 정상적으로 application.properties에 설정되어있는 포트로 정상적으로 올라간 것을 확인 할 수 있다.
오류
처음에는 잘 실행이 됐지만 재실행을 하니 아래와 같이 오류가 발생하였다.
아무리 수정해도 오류가 없어지지 않아.. /home/tkdrl8908 경로에 Script를 생성하여 그대로 실행하니 잘 실행이 되서 아래와 같이 수정하였다.