저는 젠킨스와 도커를 같은 머신 우분투에 설치했습니다.jockkins의 종속 노예로서의 도커 컨테이너
- 우분투 17.10
- 젠킨스 버전. 2.73.3
- 도커 버전 17.09.0-ce.
내 자동화 테스트 제품군을 실행하기 위해 jenkin 도커 컨테이너를 슬레이브로 설정하려고합니다.
나는 Docker 컨테이너를 회전시키기 위해 Jenkins에서 docker 플러그인을 올바르게 설정하고 docker 환경을 설정하기 위해 만든 이미지가있는 docker 템플릿을 추가 할 수있었습니다.
이미지는 우분투에서 호스팅되는 도커에 빌드되었습니다.
젠킨스에서 일을 실행하면 문제가 생깁니다. 그것은 오류 메시지 제공 (보류 - 젠킨스가없는 레이블을 고정 표시기 - 슬레이브)
나는 다음과 같은 오류 메시지가 표시 우분투 머신에서 젠킨스 로그를 확인하면
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에서
답장을 보내 주신 @Ivonet에게 감사드립니다. 어떤 젠킨스 파일을 추천하고 있습니까? 내 구성에 특정 젠킨스 파일이 없습니다. – user1555608
아, 그건 내 가정이었습니다. 미안 해요. 그런 다음 프로젝트를 통해 Jenkins를 구성 할 수 있습니다. – Ivonet