👀 Epilogue
- 백엔드 Gradle 빌드 시 매우 많은 트러블 이슈 발생
- Gradle 빌드 명령어 이슈..
- Test 제외 빌드 명령어
- ./gradlew build --exclude-task -test
- Gradle 빌드 명령어 이슈..
- Gradle 빌드 세팅 파일 찾지 못하는 이슈..
- Gradle 권한 오류..
- etc..
- 그중에서 제일 애를 먹었던 이슈를 해결했던 과정을 소개하고자 한다.
⚡ Leggo
- Jenkinsfile
...
stage('Gradle Jar Build'){
steps{
dir('back'){
sh '''
chmod +x gradlew
./gradlew build --exclude-task test
'''
}
}
post{
failure{
echo 'Gradle jar build failure!'
}
success{
echo 'Gradle jar build success!'
}
}
}
...
- 'Gradle build daemon disappeard unexpectedly (it may have been killed or may have crashed)' 에러 문구 발생
- 위 블로그 글처럼 Gradle 옵션에 no-daemon 추가하여도 똑같은 에러 발생으로 Agent Pod의 스펙이 부족한가 의심됨
- 현재 Agent pod의 스펙은 다음과 같이 로그에 나타난다.
- 빌드 로그에서 빌드 데몬이 메모리가 494.9 MiB를 사용한다는 것(?)으로 유추할 수 있는 로그를 확인하였다.
- 이를 통해 Agent Pod의 스펙이 부족함으로 나타나는 에러 발생으로 생각이 굳혀져 갔다.
- 현재 젠킨스를 Helm으로 Kubernetes에 구축한 환경이라 Jenkins 내 시스템 설정에서 Agent 파드를 설정하는 파트가 존재하지 않았다..
- 방법을 강구하던 도중 Jenkins Helm Chart Value 파일을 살펴보았다.
- [agent.resources] 필드가 존재하였다 !
- 바로 메모리 두 배 스펙업 고고링
- helm upgrade jenkins jenkins/jenkins -f jenkins-values.yaml -n jenkins
agent:
enabled: true
defaultsProviderTemplate: ""
# URL for connecting to the Jenkins contoller
jenkinsUrl:
# connect to the specified host and port, instead of connecting directly to the Jenkins controller
jenkinsTunnel:
kubernetesConnectTimeout: 5
kubernetesReadTimeout: 15
maxRequestsPerHostStr: "32"
namespace:
image: "jenkins/inbound-agent"
tag: "4.11.2-4"
workingDir: "/home/jenkins/agent"
nodeUsageMode: "NORMAL"
customJenkinsLabels: []
# name of the secret to be used for image pulling
imagePullSecretName:
componentName: "jenkins-agent"
websocket: false
privileged: false
runAsUser:
runAsGroup:
hostNetworking: false
resources:
requests:
cpu: "512m"
memory: "1024Mi"
limits:
cpu: "512m"
memory: "1024Mi"
- 정의한 스펙이 적용된 것을 확인
- 아시죠 ?
- 뭔가 감이 오잖아요
- 될 것 같은 이 기분..
- 에러 로그랑 그냥 시작부터 다르다는 것을..
- 성공 !!!!!!! 😭
- 참고
- Back-End JAR file PATH
- /home/jenkins/agent/workspace/test-backend/demo/build/libs/demo-0.0.1-SNAPSHOT.jar
- java -jar demo-0.0.1-SNAPSHOT.jar
'CI/CD' 카테고리의 다른 글
Jenkins Docker Image Push (0) | 2022.12.14 |
---|---|
Jenkins Back-End Dockerizing (0) | 2022.12.13 |
Jenkins Webhook 연동 (0) | 2022.12.12 |
ArgoCD Helm 설치 & 테스트 (0) | 2022.12.10 |
Jenkins 환경 설정 및 빌드 테스트 (0) | 2022.12.09 |