2017-01-19 74 views
0

我已經爲Docker創建了一個jenkins從屬映像,我想用它來構建我的所有Java項目,但是我不知道如何引用.m2/settings.xml文件告訴它從哪裏拉。Jenkins Slave無法讀取settings.xml

我Dockerfile是:

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"] 

但是當我運行構建,它試圖從Maven的中央拉,而不是我們本地Artifactory的情況下,這是在設置文件中配置。

這在我在Jenkins Master上運行時有效,但我想將構建卸載到從站,但我無法正確地配置Maven。

回答

0

我認爲你的工作空間是從slave裝入的。並且它不會讀取容器中的.m2

您可以嘗試使用他的插件https://wiki.jenkins-ci.org/display/JENKINS/Config+File+Provider+Plugin來創建settings.xml並配置您的MVN構建步驟以使用它。

+0

奴隸本身是一個容器。我認爲jenkins master直接與這個從屬容器連接,根本不與docker主機系統交互(端口22被轉發到從屬容器的sshd)。這意味着工作區也在從屬容器內。我喜歡你提到的插件:) – fishi

+0

我認爲你應該嘗試插件,你將在一個通用的地方有你的配置,它很容易使用。如果您需要任何幫助,請告訴我 –