2017-09-11 11 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の画像のすべてが含まれ、カスタマイズを追加します。

docs.docker.comにはかなり良い文書がありますが、特にDockerfilesを書くためのベストプラクティスについてはthis oneが話しています。

+0

ありがとうございました。したがって、Jenkins用のプラグインを使用する必要がある場合は、dockerfileではなく、jenkins環境で直接設定する必要があります。しかし今、私はいくつかの書類を勉強する必要があります。 –

0

のベースイメージにtheseDocker imagesのいずれかを使用して作成してください。

0

標準的なプロセスは、アップストリームイメージを拡張することです。上流プロジェクトからDockerファイルを取り出して直接変更する必要があるのは、ゼロからすべてを構築する必要がある企業ポリシーがある場合や、アップストリームで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のレポでは、この例の残りの部分を持っている:https://github.com/bmitch3020/jenkins-docker