반응형
기존 Jenkins, Sonarqube를 helm 을 통해 가져온 이미지로 동작하도록 구성하였는데 해당 이미지를 그대로 사용할 경우 Jenkins와 Sonarqube에서 서로의 서버를 볼 때 IP가 아닌 도메인으로 하게될 경우 https로 호출하게 되는데 이때 java keystore에 인증서가 적용되어 있지 않아 에러가 발생한다.
이 에러를 해결하기 위해 Dockerfile을 간단하게 만들어서 해결했다.
Jenkins 설정
1.1 Jenkins Dockerfile
# Jenkins 이미지
FROM jenkins/jenkins:2.440.3-jdk17
# 인증서 복사
COPY ../ca.crt /tmp/ca.crt
# root 권한에서만 인증서 추가가 가능하여 root 유저로 설정
USER root
# 인증서 추가 명령어
RUN keytool -import -trustcacerts -keystore $JAVA_HOME/lib/security/cacerts -storepass changeit -noprompt -alias mycert -file /tmp/ca.crt
1.2이미지 Build 및 Push 명령
cd dockerfiles/jenkins
docker build -t gkfka133/jenkins:1.0 .
docker push gkfka133/jenkins:1.0
1.3 Jenkins Helm values.yaml 파일 이미지를 위에서 만든 이미지로 변경
Sonarqube 설정
2. Sonarqube Dockerfile
# Sonarqube 이미지
FROM bitnami/sonarqube:9.4.0-debian-10-r23
# 인증서 복사
COPY ../ca.crt /tmp/ca.crt
# root 권한에서만 인증서 추가가 가능하여 root 유저로 설정
USER root
# 인증서 추가 명령어
RUN keytool -import -trustcacerts -keystore $JAVA_HOME/lib/security/cacerts -storepass changeit -noprompt -alias mycert -file /tmp/ca.crt
2.2이미지 Build 및 Push 명령
cd dockerfiles/sonar
docker build -t gkfka133/sonar:1.0 .
docker push gkfka133/sonar:1.0
2.3 Sonarqube Helm values.yaml 파일 이미지를 위에서 만든 이미지로 변경
추후 정상 작동/ 미설정시 에러 부분 캡쳐 추가 예정
반응형
'Devops > Docker' 카테고리의 다른 글
Dockerfile을 사용한 maven 이미지 커스텀 (2) | 2024.07.18 |
---|