Spring Boot 로 개발된 프로그램을 자동으로 배포하는 방법을 소개한다
예전부터 많이 사용되던 젠키스를 이용하는 방법도 있지만 최근 프로젝트가 소스 관리를 위해 Gitlab 을 이용하므로
Gitlab 에서 제공하는 CI/CD 기능을 이용해봤다
배포는 Spring Boot 의 결과물을 jar 파일로 배포 후 실행하는게 아니라 도커로 묶어서 배포 실행한다
Dockerfile
도커 설정 파일을 생성해야한다
해당 파일은 Spring Boot 로 개발된 결과물을 도커 파일로 만들 때 사용되는 설정이다
Spring Boot 는 자바 기반이므로 JDK 관련 설정과 컴파일된 jar 파일 복사, 마지막으로 jar 를 실행할 때 사용되는 명령이 포함된다
.gitlab-ci.yml
git 의 마스터 브랜치의 내용이 변경될 경우 설정된 CI/CD 가 실행되게끔 한다
개발된 Spring Boot 파일의 빌드, 테스트, 도커로 패키징, 서버로 배포 순서로 동작하게끔 설정하였다
.gitlab-ci.yml 파일은 직접 생성해도 되지만 Gitlab 사이트에서 제공하는 에디터로 쉽게 작성할 수도 있다
Gitlab 사이트에서 작성한 .gitlab-ci.yml 파일의 내용이다
7~16 은 Spring Boot + Gradle 로 개발된 파일을 빌드 후 생성된 jar 파일을 10분간 다른 스테이지와 공유하겠다는 내용이다
18~22 은 jUnit 으로 작성한 테스트 파일을 실행한다
24~37 은 빌드된 파일을 도커 파일로 배포하는 내용이다
도커 파일의 배포는 도커허브의 개인 계정에 배포되며 다음 스테이지인 deploy 에서 도커허브에 배포된 파일을 다운받아 서버에 실행시킨다
32번째의 $DOCKER_HUB_USER 와 $DOCKER_HUB_PW 는 도커허브 계정에 접속하기 위한 계정정보이며 별도로 설정 메뉴에서 작성한다
39~54 는 실제 운영서버에서 수행되는 내용이다
42번에 작성된 태그명과 동일한 이름의 Gitlab-runner 가 작성한 스크립트를 실행한다
환경 변수 설정
위의 Gitlab CI/CD 스크립트에 도커허브에 접속하기 위한 아이디와 비밀번호를 별도 환경변수에 저장한다고 하였다
아래는 GItlab 사이트 설정 메뉴에서 변수를 설정하는 방법이다
Gitlab-runner
마지막으로 실제 운영서버에 CI/CD 에서 설정한 스크립트를 실행하기 위한 Gitlab-runner를 설치해야 한다
Gitlab-runner 를 관리하는 화면이다
GItlab 에서 제공하는 설치 매뉴얼을 보면 쉽게 설치할 수 있다
여기까지 최대한 간단히 작성한 Spring Boot 로 개발된 프로그램을 도커로 묶어서 운영서버에 배포/실행하는 방법을 정리하였다
참고 솔루션 : 봄즈 봄보라
'봄보라' 카테고리의 다른 글
Spring Boot 에서 JUnit5 , MockMvc 를 이용하여 JSon 응답 값 검증하기 (0) | 2021.12.12 |
---|---|
Spring Boot 에서 JUnit5 , MockMvc를 이용하여 테스트 진행하기 (0) | 2021.11.28 |
MariaDB Sequence 사용하기 (0) | 2021.10.24 |
Kanban(칸반) 시작을 위한 가이드 (0) | 2021.10.17 |
XSS 공격 방지를 위한 OWASP ESAPI 이용하기 (0) | 2021.10.10 |