본문 바로가기

SpringFramework/Spring

Jenkins를 이용한 서버 Spring Boot 배포 - pipeline

ubuntu서버 1대에 Spring Boot 프로젝트 구동 배포 pipeline 구축에 대해서 소개한다.

 

[참고사항]

- 개발환경으로는 사용이 가능할 수 있으나, 실제 운영환경에서는 적합하지 않습니다.

- Load Balencer가 적용되지 않으며, 접근할 수 있는 DNS 및 공인 IP가 등록되어있어야 합니다.

- Blue/Green (무중단)배포가 아닌, 배포진행중에는, 프로젝트가 중단되어버리는 방법입니다.

 

jenkins 배포 pipeline 설정 tab메뉴

1] General

 

2] 소스 코드 관리

 

3] Build

(!) 정렬 순서에 맞게 동작하므로, 순서에 유의할 것.

 

- Execute shell

: 기존에 떠있는 java springboot 프로젝트를 제거

$ kill -9 $(ps -ef | grep 'ep-java-gradle-exam' | grep -v grep | awk '{print $2}') || true

- Invoke Gradle script

 

4] 빌드 후 조치

- Dspring.profiles.active: application.yml(프로퍼티)의 spring.profiles.active를 통한 환경변수 분리되어있는 경우 분기 (dev, stg, prod 등..)

- [settings.gradle의 rootProject.name] + [build.gradle의 version]가 조합되어 jar이름이 결정됨

ex) example-0.0.1-SNAPSHOT.jar