2017-01-19 32 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

我认为你应该尝试插件,你将在一个通用的地方有你的配置,它很容易使用。如果您需要任何帮助,请告诉我 –