쿠버네티스 파드의 젠킨스에서 파이프 라인으로 빌드 및 배포하기
Dashboard > Jenkins 관리 > Credentials
Images registry 로그인 용 Crendential 만들기
새로운 Item > Pipeline
pipeline {
agent any
stages {
stage('git scm update') {
steps {
git url: 'https://github.com/my-Source/my.git', branch: 'main'
}
}
stage('Docker Repository Login') {
steps {
withCredentials([[$class: 'UsernamePasswordMultiBinding',
credentialsId: 'docker-registry',
usernameVariable: 'DOCKER_USER_ID',
passwordVariable: 'DOCKER_USER_PASSWORD'
]]){
sh "docker login my.registry.com:8443 -u ${DOCKER_USER_ID} -p ${DOCKER_USER_PASSWORD}"
}
}
}
stage('docker build and push') {
steps {
sh '''
docker build -t my.registry.com:8443/library/myProject .
docker push my.registry.com:8443/library/myProject
'''
}
}
stage('deploy kubernetes') {
steps {
sh '''
kubectl create deployment my-project --image=my.registry.com:8443/library/myProject
kubectl expose deployment myProject --type=LoadBalancer --port=8080 \
--target-port=80 --name=myProject-svc
'''
}
}
}
}
stage 1. Git 소스 다운로드
stage 2. Private Image Repository 로그인
stage 3. Repository에 docker build % push
stage 4. Kubernetes deploy 하기.
10번의 시도 끝에 성공!!!!!
(docker is not found -> HostPath 연결
docker.sock permission -> runAsGroup 추가
kubectl 실행 권한 에러 -> ClusterRole 추가) 등등...