2016-11-05 2 views
3

여러 개의 Jenkins 작업과 몇 개의 Jenkins 슬레이브 노드 (실제 머신)가 있습니다. 이 노예들은 모두 도커 인 1.12.1을 실행합니다. 나는이 일들이이 노예들 중 어느 누구에게나 적용되기를 바랍니다. 이러한 작업은 서로 다른 환경 요구 사항을 가지고 있기 때문에 다양한 환경마다 도커 이미지를 만든 다음 작업의 "내부"에서 작업을 실행할 컨테이너를 지정할 수 있다고 생각했습니다.컨테이너에서 Jenkins 작업 실행

이것이 가능합니까? 즉 이러한 작업 내에서이 작업들이 실행되기를 원하는 특정 도커 컨테이너를 지정 하시겠습니까? 작업이 끝나면 컨테이너가 파괴되고 유물과 보고서 만 남습니다.

젠킨스에 존재하는 몇 가지 도커 플러그인이 있지만, 내가 원하는 것을 정확하게 발견했습니다.

답변

5

물론 대답은 예, 가능합니다.입니다.

넓은 유형의 질문이 주어지면 포인터 만 제공 할 수 있습니다.

은 파이프 라인을 코드로 설명하는 좋은 방법입니다. 도커 플러그인은 또한 컨테이너와 통합되어 작업을 컨테이너 내에서 실행할 수 있습니다.

// select a slave based on the label 'docker' 
node('docker') { 
    stage "Run in container (e.g. the php-7)" 
    docker.image('php:7').inside { 
    // run your command 
    sh "phpunit" 
    } 
} 

이 당신이 시작됩니다 에 관한에서 자원의 몇 가지가 있습니다.

+1

여러 도커 컨테이너가 필요한 경우 어떻게 테스트합니까? 예를 들면. 데이터베이스와 함께 phpunit을 수행합니다. –

+0

의견을 묻지 말고 별도의 질문으로 질문하십시오. – StephenKing