이번 프로젝트에서는 Jenkins를 활용하여 CI/CD 배포를 진행했으나, application.yml 및 application-secret.yml 설정 파일이 .gitignore에 포함되어 있어 깃헙에 푸쉬되지 않는 문제가 발생했습니다. Jenkins는 깃헙의 내용을 바탕으로 빌드를 진행하기 때문에 설정 파일이 누락되어 빌드 과정에서 문제가 발생했습니다.
원인:
application.yml 및 application-secret.yml 파일이 .gitignore에 포함되어 깃헙에 푸쉬되지 않음.해결 방법:
구체적인 해결 방법:
Docker Compose 파일에서 설정 파일을 마운트하도록 설정.
version: '3.8'
services:
app:
image: myapp:latest
volumes:
- ./application.yml:/tmp/config/application.yml
- ./application-secret.yml:/tmp/config/application-secret.yml
2. Jenkins Freestyle 프로젝트에서 설정 파일 복사:
Jenkins Freestyle 프로젝트의 빌드 단계에서 설정 파일을 복사하는 명령어 추가.
# 설정 파일 복사
cp /tmp/config/application.yml src/main/resuorces/
cp /tmp/config/application-secret.yml src/main/resuorces/
chmod +x ./gradlew
./gradlew clean build -x test
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
...
이번 트러블 슈팅을 통해 Jenkins를 이용한 CI/CD 배포 과정에서 설정 파일 문제를 해결할 수 있었습니다. 다음 프로젝트에는 Jenkins 의 pipeline 을 활용해서 일반적인 방법으로 적용해보겠습니다.