GitLab Runner로 CI/CD 구축하고 Maven 빌드 시간 단축!
GitLab Runner를 Helm Chart를 통해 Kubernetes에 설치하고, 프로젝트와 연동하는 방법을 설명함
Maven 의존성 캐싱 및 다중 스레드 처리를 통해 Maven 빌드 시간을 11초로 단축함
.gitlab-ci.yaml 파일 작성 및 Azure Container Registry(ACR) 연동을 통한 CI/CD 파이프라인 구축
Kubernetes 환경에서의 GitLab Runner 설치
GitLab Runner는 Helm Chart를 사용하여 Kubernetes 클러스터에 배포된다. 구체적으로, values.yaml 파일을 통해 Runner의 설정(이미지, 토큰, 권한 등)을 정의한다. 따라서, Persistent Volume(PV) 및 Persistent Volume Claim(PVC) 설정을 통해 Maven 의존성 캐싱을 위한 Azure Blob Storage를 마운트한다.
Maven 빌드 시간 단축을 위한 핵심 전략
Maven 빌드 시간 단축을 위해 다중 스레드(-T 1C)를 사용하고, 테스트 및 Javadoc 생성을 생략한다. 반면, Maven 의존성 라이브러리 캐싱을 위해 Azure Blob Storage를 활용하여 빌드 시간을 획기적으로 줄였다. 결과적으로, 최초 4분 44초에서 11초로 빌드 시간을 단축했다.
.gitlab-ci.yaml 파일 작성 및 에러 해결
.gitlab-ci.yaml 파일은 CI/CD 파이프라인을 정의하는 핵심 요소이다. stages, variables, cache, script 등을 설정하여 빌드, 테스트, 배포 단계를 구성한다. 따라서, docker:dind 사용 시 발생하는 'Is the docker daemon running?' 에러는 `--tls=false` 설정을 통해 해결한다.