2017-09-11 4 views
0

나는 Docker와 Jenkins에서 절대적으로 새로운 질문을하고 싶습니다. 어쩌면 당신은 저를 도울 수 있습니다.Dockerfile for Jenkins

github을 체크 아웃하기위한 자동화 된 작업을 만들 수 있도록 모든 Jenkins 파트가 포함 된 Docker 파일을 만들고 싶습니다.

그래서 공개 도커 파일은 github (https://github.com/jenkinsci/docker/blob/master/Dockerfile)에서 발견되었지만 많은 매개 변수가 포함되어 있으며 전체 Dockerfile을 사용해야하는 경우 확실하지 않습니다.

첫째, 나에게 조언을 해줄 수 있습니까? 도커 파일을 수정하는 방법은 무엇입니까? 또는 원본 Dockerfile (URL이 위)을 사용하는 것이 좋습니다?

좋은 조언을 보내 주셔서 감사합니다.

+0

https://www.youtube. com/watch? v = r5cofUYqnn8, 젠킨스의 전체 그림. 군중 모드에서. –

답변

1

Dockerfile 을 전혀 수정하지 마십시오.. 그 아래에 변경 사항을 배치 한 후

FROM jenkins 

그리고 :로 시작하는 새로운 Dockerfile을 만듭니다. 공식 Jenkins 이미지의 모든 내용이 포함 된 다음 사용자 정의 항목을 추가하십시오.

에 꽤 좋은 문서가 있는데, 특히 this one에서 Dockerfiles 작성에 대한 모범 사례에 대해 설명합니다.

+0

도움을 주셔서 대단히 감사합니다. 따라서 Jenkins 용 플러그인을 사용해야하는 경우 dockerfile이 아닌 jenkins 환경에서 직접 구성해야합니다. 맞습니까? 하지만 지금은 몇 가지 서류를 공부해야합니다. –

0

Dockerfile의 기본 이미지로 theseDocker images 중 하나를 사용하고 생성하십시오.

0

표준 프로세스는 업스트림 이미지를 확장하는 것입니다. 업스트림 프로젝트에서 Dockerfile을 가져 와서 직접 수정할 필요가 있습니다. 처음부터 모든 것을 빌드해야하는 회사 정책이 있거나 Dockerfile을 확장하여 수정할 수없는 잘못된 업스트림입니다 (예 : Dockerfile의 볼륨). 확장 이유는 Dockerfile에 변경 사항을 다시 적용하지 않고 상향 이미지를 가져 와서 하위 이미지를 재구성하여 최신 패치를 쉽게 얻을 수 있기 때문입니다.

Docker 허브의 "공식적인"젠킨스 이미지가 몇 번 이동했습니다. 그것은 jenkinsci/jenkins였습니다. 그런 다음 jenkins로 공식 라이브러리로 옮겼습니다 : 최신, 이제 jenkins/jenkins : lts로 옮깁니다. 당신이 상류 이미지를 확장하는 것입니다 방법의 예는 다음과 같은 것입니다 :

FROM jenkins/jenkins:lts 

ARG GOSU_VERSION=1.10 

# switch to root, let the entrypoint drop back to jenkins 
USER root 

# install debian packages, gosu, and docker 
RUN apt-get update \ 
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ 
    vim \ 
    wget \ 
&& dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')" \ 
&& wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch" \ 
&& chmod +x /usr/local/bin/gosu \ 
&& gosu nobody true \ 
&& curl -sSL https://get.docker.com/ | sh \ 
&& apt-get clean \ 
&& rm -rf /var/lib/apt/lists/* 

# entrypoint is used to update docker gid and revert back to jenkins user 
COPY entrypoint.sh /entrypoint.sh 
ENTRYPOINT ["/entrypoint.sh"] 

내가 내 github의의의 repo이 예제의 나머지 부분을 가지고 : https://github.com/bmitch3020/jenkins-docker