주요 변경사항:
- podTemplate 사용하여 Kubernetes Pod에서 실행
- 3개 컨테이너 사용: podman, gradle, git
- mgoltzsche/podman 이미지로 Podman 빌드
- gradle:jdk21 이미지로 Gradle 빌드
- alpine/git으로 manifest 저장소 업데이트
컨테이너별 역할:
- podman: Docker 이미지 빌드 및 ACR 푸시
- gradle: Gradle 빌드 및 JAR 생성
- git: Kustomize로 manifest 저장소 업데이트
리소스 최적화:
- Pod 자동 정리 (idleMinutes: 1, terminationGracePeriodSeconds: 3)
- 컨테이너별 리소스 제한 설정
- emptyDir 볼륨으로 Gradle 캐시 및 Podman 소켓 공유
Fix: Docker 대신 Podman 사용으로 Jenkins 환경 호환성 개선
- JDK 21 압축 해제 완료까지 대기 루프 추가
- Gradle 빌드 시 JAVA_HOME과 PATH 명시적 export
- java -version으로 사용 중인 Java 버전 확인
- JDK 경로를 직접 사용하여 Java 17 우선순위 문제 해결
Fix: JAVA_HOME is set to an invalid directory 오류 해결
- Setup Java stage에서 JAVA_HOME 명시적 설정
- tool() 함수로 Jenkins에 등록된 JDK21 사용
- PATH에 JDK bin 디렉토리 추가
- java -version으로 설정 확인
Fix: Toolchain installation '/opt/bitnami/java' does not provide JAVA_COMPILER 오류 해결
- Jenkinsfile: GitHub Actions 대체 Jenkins Pipeline 구축
- 5개 백엔드 서비스 빌드 (user, meeting, stt, ai, notification)
- Gradle 빌드 및 SonarQube 분석 (선택사항)
- Docker 이미지 빌드 및 ACR 푸시
- Manifest 저장소 업데이트 (ArgoCD 연동)
- 환경별 배포 지원 (dev/staging/prod)
- deployment/jenkins/JENKINS_SETUP.md: Jenkins 설정 가이드
- Credentials 설정 방법
- JDK 21 및 SonarQube 설정
- Pipeline Job 생성 및 실행 가이드
- 트러블슈팅 가이드
- 사용 이유: GitHub Actions 차단으로 인한 대체 CI/CD 구축