개발과 기록의 조화

[Spring Boot] application.Properties 파일 분리해서 jar 파일 실행 본문

Web Framework/Java Spring Framework

[Spring Boot] application.Properties 파일 분리해서 jar 파일 실행

dlaudtjr03 2020. 3. 3. 18:34
해당 게시물은 학습 및 기록 목적으로 작성되었습니다. 사실과 다른 내용이 있을 수 있으며, 오류가 있거나 궁금한 점은 댓글이나 dlaudtjr07@gmail.com 으로 메일 주시면 감사하겠습니다.

 

현재 진행하고 있는 프로젝트는 젠킨스를 이용한 CI/CD를 사용 중인데, Github에 application.properties 파일을 ignore 시키면 젠킨스 쪽에서 jar파일로 압축 후 실행 시 application.properties와 같은 구성 파일이 없어서 실행이 되지 않는 불상사가 일어 날 수 있습니다. 그러한 이유로 EC2 서버에 따로 application.properties를 두어 해당 설정 파일을 읽어오도록 설정합니다.


외부 설정 파일을 불러오는 여러 가지 방법이 존재하지만, 지금은 스프링 부트 환경변수를 이용한 방법을 이용합니다.

jar 파일이 있는 디렉토리에 deploy_application.properties를 생성하고 설정합니다.

 

 

그리고 나서, 젠킨스에서 실행하는 쉘 스크립트 명령어를 수정해야 합니다.

 

 

현재 젠킨스에서 실행시키는 쉘 스크립트의 명령어입니다.

#! /bin/bash

echo "Shutting down Previous Service ... "
fuser -k 8081/tcp

echo "New Service Activate"
export BUILD_ID=dontKillMe
nohup java -jar AskAnything*.jar >> nohup.out 2>&1 &

 

 

스프링 부트에서 외부 properties 파일을 불러오는 환경 변수 명령어는 --spring.config.name={파일 이름} 입니다. 뒤에 확장자 명은 생략합니다. 변경한 명령어는 아래와 같습니다.

#! /bin/bash

echo "Shutting down Previous Service ... "
fuser -k 8081/tcp

echo "New Service Activate"
export BUILD_ID=dontKillMe
nohup java -jar AskAnything*.jar --spring.config.name=deploy_application >> nohup.out 2>&1 &

 

그 후 젠킨스 빌드 시 쉘 스크립트 실행 부분에서 deploy_application.properties를 주입해 실행하게 됩니다.


Comments