대머리개발자

도커로 빌드된 젠킨스에서 도커 사용하기 본문

개발이야기/오픈소스 설치

도커로 빌드된 젠킨스에서 도커 사용하기

대머리개발자 2023. 10. 11. 21:11
728x90

백엔드는 jib를 이용해서 그냥 스삭 넘어 갔다. (docker를 사용하지 않으니...)

 

But 프론트 영역은 docker 빌드가 필요하다잉...로컬에서 도커로 젠킨스를 사용했으니.. 젠킨스 플러그인으로...도커를 설치 했는데야???

결론만 이야기하면 도컨안에 도커는 내 로컬에 깔려 있는 도커를 쓰는 법으로 아래 처럼 사용해야 한다고 한다.

물론 난 윗 내용처럼 만들었다. 그럼에도 불구 하고 에러가 난 이유는...젠킨스에 도커가 설치되어 있지 않아서 그런거라고 한다.

 

잘 설치가 안 된다.

구글링시작! 동일한 내용으로 질문이 두둥!..아...행복하다..

https://community.jenkins.io/t/jenkins-pipeline-fails-with-docker-not-found-message/3994/4

 

Jenkins pipeline fails with docker not found message

thanks for reply after did some research i find the way make it worked ! https://stackoverflow.com/questions/72990497/getting-glibc-2-32-and-glibc-2-34-not-found-in-jenkins-docker-with-dind-on i changed my docker-compose file to version: '3.9' services: je

community.jenkins.io

자문자답을 했네. 결론은 젠킨스를 이미지로 만들때 도커 실행 파일들을 풀어 넣는다.ㅋ

wget http://get.docker.com/builds/Linux/x86_64/docker-latest.tgz
tar -xvzf docker-latest.tgz
mv docker/* /usr/bin/

 

 

인프라는 지친다야. ㅋㅋ.. 프론트도. 끝!!!

 

pipeline {    
    environment { 
        repository = "signal-k8s.kr.ncr.ntruss.com/lecturefront"  //이미지 이름
        registryCredential = credentials('docker-hub') // docker credentials로 등록해 놓은 친구
        dockerImage = '' 
    }

    agent any
    stages {
        stage('Git Clone') {
            steps { 
                                       // git credentials로 등록해 놓은 친구
                 git branch: 'dev', credentialsId: '2f260bd5-703d-4ee5-975f-afcf7cab877c', url: 'https://devtools.ncloud.com/*/-.git'
            }
        }
         stage('build') {
             steps {
                 dir("./") {
                     nodejs(nodeJSInstallationName: 'nodeJs 14.21.3') { // tools 등록에 놓은 친구
                         //sh 'npm install && npm run build'  // install very long time ...최초에 한번하구.. lib추가되면..열자.
                         sh 'npm run build'
                     }
                 }
             }
        // } 
        
        stage('docker build') {
            steps {
                sh '''
                    echo $registryCredential_PSW | docker login signal-k8s.kr.ncr.ntruss.com -u $registryCredential_USR --password-stdin
                '''
                 dir('./'){
                    // git root에 도커 파일이 있어야겠지?.. 아래처럼 명령어가 변경되어서 실행된다.
                    // docker build -t repository .
                    // 이거 할라구... 플러그인 설치하는건가?
                    script {                       
                        docker.build repository                        
                    }
                }
            }
        }
        
        stage('docker push') { 
          steps {              
               sh '''
                    docker push $repository
                '''
         }
       }
        stage('Apply Kubernetes files') {
		      sh '''
                // ncp-iam-authenticator 미리 받아 두어야 한ㄷㅔ이.
		            mkdir -p $HOME/bin && cp ./ncp-iam-authenticator $HOME/bin/ncp-iam-authenticator && export PATH=$PATH:$HOME/bin
		            
		            echo 'export PATH=$PATH:$HOME/bin' >> ~/.bash_profile
		
		            export NCLOUD_ACCESS_KEY=$registryCredential_PSW
		            export NCLOUD_SECRET_KEY=$registryCredential_USR
		            export NCLOUD_API_GW=https://ncloud.apigw.ntruss.coml
		            
		            kubectl get po --kubeconfig kubeconfig.yaml
		            kubectl rollout restart deployment front --kubeconfig kubeconfig.yaml
		            kubectl get po --kubeconfig kubeconfig.yaml
		      '''
			  }
   }
}

하악하악...내 로컬에 있는 도커 목록이.나온다야..

728x90