2017-01-19 2 views
0

Docker用のJenkinsスレーブイメージを作成しましたが、これを使ってすべてのJavaプロジェクトをビルドしますが、.m2/settings.xmlファイルを使用して、どこから取得するかを指定します。Jenkins Slaveがsettings.xmlを読み取ることができません

FROM openjdk:8 
MAINTAINER Chris Hudson <[email protected]> 

RUN apt-get -qqy update && \ 
    apt-get -y install openssh-server sudo 

RUN useradd -m -u 1000 -s /bin/bash jenkins && \ 
    mkdir -p /home/jenkins/.ssh && \ 
    mkdir -p /home/jenkins/.m2 && \ 
    echo jenkins:jenkins | chpasswd && \ 
    mkdir -p /etc/sudoers.d/ && \ 
    echo "jenkins ALL=(root) NOPASSWD: ALL" > /etc/sudoers.d/jenkins && \ 
    chmod 440 /etc/sudoers.d/jenkins 

COPY id_rsa.pub /home/jenkins/.ssh/authorized_keys 
COPY settings.xml /home/jenkins/.m2/ 

RUN chown -R jenkins:jenkins /home/jenkins 

RUN mkdir -p /var/run/sshd 

EXPOSE 22 
CMD ["/usr/sbin/sshd", "-D"] 

しかし、私は、ビルドを実行すると、それは設定ファイルで設定されている地元Artifactoryインスタンス、Mavenの中心から引いて、としないようにしようとします。

私Dockerfileです。

これはJenkins Masterで実行すると機能しますが、ビルドをスレーブにオフロードしたいのですが、Mavenを正しく設定する方法を考えることができません。

答えて

0

あなたのワークスペースはスレーブからマウントされていると思います。あなたのコンテナから.m2を読み取っていない

彼のプラグイン - https://wiki.jenkins-ci.org/display/JENKINS/Config+File+Provider+Pluginを使用してsettings.xmlを作成し、MVNビルドステップを設定して使用することができます。

+0

スレーブ自体はコンテナです。私はジェンキンマスターがこのスレーブコンテナに直接接続し、ドッカーホストシステムと全くやり取りしないと思います(ポート22はスレーブコンテナのsshdに転送されます)。これは、ワークスペースがスレーブコンテナ内にあることを意味します。私はあなたが言ったプラグインが好きです:) – fishi

+0

私はプラグインを試してみてください、あなたは1つの一般的な場所であなたの設定を持っていると思う、それは使いやすいです。助けが必要なら私に知らせてください –

関連する問題