2017-12-19 1 views
2

내가 상속 한 젠킨스 설치 작업 중입니다. 이 설치에는 CloudBees Docker Custom Build Environment Plugin이 설치되어 있습니다. 우리는 라고 생각합니다.이 플러그인은 빌드 구성에서 Docker 컨테이너 체크 박스 내에 빌드 체크 박스를 제공합니다. 우리가이 옵션을 사용하여 작업을 구성 할 때, 그것은 모양 (젠킨스 콘솔 출력 기준) 젠킨스는Jenkins CloudBees Docker Build Plugin의 쉘 경로 설정 방법

Docker container 548ab230991a452af639deed5eccb304026105804b38194d98250583bd7bb83q started to host the build 
[WIP-Tests] $ docker exec -t 548ab230991a452af639deed5eccb304026105804b38194d98250583bd7bb83q /bin/sh -xe /tmp/hudson7939624860798651072.sh 

그러나 다음 명령을 사용하여 빌드를 실행 - 우리는 이것이 매우 제한된 세트 /bin/sh를 실행하는 것으로 나타났습니다 환경 변수 - $PATH에는 /bin이 포함되지 않습니다! 그래서

  1. CloudBees 도커 사용자 정의 환경 플러그인 설정의 /bin/sh 환경을 구축 않는 방법. UI를 통해 구성이 사용자는 (만약 그렇다면, 어디에?)가

    그것은 젠킨스처럼 보이는
  2. docker exec를 사용 - 내가이 사용 (보이지 않게) 설정을 장기 실행 프로세스에 용기를 가져야한다는 의미한다고 생각하는 docker run. 아무도 알지 못합니다. CloudBees Docker 사용자 정의 빌드 환경 플러그인 플러그인이 docker run을 호출하고 이것이 사용자가 관리 할 수 ​​있다면?

답변

1

이 플러그인을 고려하면 "입양"나는 공식 JENKINS/Docker Pipeline Plugin를 추천 할 것입니다.

.

그러나 /bin/sh

ENTRYPOINT ["/bin/sh", "-c"] 

에 대한 컨테이너 has a default entrypoint 세트를 잊지 마세요 :

https://wiki.jenkins.io/download/attachments/78676506/Capture%20d%E2%80%99%C3%A9cran%202015-06-25%20%C3%A0%2018.07.49.png?version=1&modificationDate=1435248491000&api=v2

고정 표시기 용기는 SCM 후 실행되는 노예로하고 체크 아웃을 가지고 작업 공간이면 Docker 1.3에 docker exec이 도입되어 이후의 모든 빌드 명령이 컨테이너 내에서 실행됩니다.당신이 당기는 것 또는 건물/실행 쉘이 있어야합니다 이미지를 의미 20,973,210

docker exec가에서 명령을 실행할 수 있습니다.

+0

+1 파이프 라인 플러그인에 대한 팁 감사합니다. 정치로 인해 특정 프로젝트에서이 플러그인이 사용되지 않을 수 있지만 향후 프로젝트에서 사용할 수있는 것처럼 들릴 수 있습니다. 또한 도커 간부 정보에 감사드립니다. 원래의 질문에 따르면, jenkins는 docker exec를 사용합니다. 그러나 docker exec가 작동하려면 이미 실행중인 컨테이너가 있어야합니다. 우리는 궁극적으로 cloudbees 플러그인이 어떻게 작동하는지 알기에 관심이 있습니다. 그거. –