2017-12-11 10 views
0

저는 젠킨스와 도커를 같은 머신 우분투에 설치했습니다.jockkins의 종속 노예로서의 도커 컨테이너

  • 우분투 17.10
  • 젠킨스 버전. 2.73.3
  • 도커 버전 17.09.0-ce.

내 자동화 테스트 제품군을 실행하기 위해 jenkin 도커 컨테이너를 슬레이브로 설정하려고합니다.

나는 Docker 컨테이너를 회전시키기 위해 Jenkins에서 docker 플러그인을 올바르게 설정하고 docker 환경을 설정하기 위해 만든 이미지가있는 docker 템플릿을 추가 할 수있었습니다.

이미지는 우분투에서 호스팅되는 도커에 빌드되었습니다.

젠킨스에서 일을 실행하면 문제가 생깁니다. 그것은 오류 메시지 제공 (보류 - 젠킨스가없는 레이블을 고정 표시기 - 슬레이브)

Jenkins pending image

나는 다음과 같은 오류 메시지가 표시 우분투 머신에서 젠킨스 로그를 확인하면

com.github.dockerjava.api.exception.NotFoundException: {"message":"pull access 
denied, "message":may require 'docker login'"} 

우분투 시스템에서, 나는 이미 도커 로그인을 완료했다.

컨테이너를 만들려고하는 이미지가 우분투에 있고 저장소에 푸시되지 않았으므로 이미지를 가져 오는 이유는 무엇입니까?

또한 해결해야하는 권한 문제는 무엇입니까? 젠킨스에서 직업을 구할 때 젠킨스 사용자가 컨테이너를 만드는 것입니다. 거기에 다른 것을 추가해야합니까? 당신은 또한 정의 할 필요는

을 원하는 버전을 ${POM_VERSION} 내 자신의 코드에서 불과 격랑입니다

// Login to registry 
    withCredentials([usernamePassword(credentialsId: 'YOUR_ID_AD_DEFINED_IN_JENKINS', passwordVariable: 'PASS', usernameVariable: 'USER')]) { 
     sh "docker login --username=$USER --password=$PASS your.registry.here.com" 
    } 

    // Build with correct pom version 
    sh "docker build -t your.registry.here.com/your_image_here/your_image_name:${POM_VERSION} ." 

    // Push 
    sh "docker push your.registry.here.com/your_image_here/your_image_name:${POM_VERSION}" 

    //pull 
    sh "docker pull your.registry.here.com/your_image_here/your_image_name:${POM_VERSION}" 

및 당연히 할 수있다 : 당신의 Jenkinsfile에서

답변

0

당신은 credentials plugin으로 자격 증명을 사용할 수 있습니다 Jenkins 서버의 자격 증명. 설명은 여기에서 찾을 수 있습니다 Working with jenkins credentials

+0

답장을 보내 주신 @Ivonet에게 감사드립니다. 어떤 젠킨스 파일을 추천하고 있습니까? 내 구성에 특정 젠킨스 파일이 없습니다. – user1555608

+0

아, 그건 내 가정이었습니다. 미안 해요. 그런 다음 프로젝트를 통해 Jenkins를 구성 할 수 있습니다. – Ivonet

-1

도커 템플릿 구성을 확인하고 "풀 전략"을 "풀 안 함"을 선택하십시오.