2017-01-19 4 views
0

Я создал рабское изображение jenkins для Docker, которое я хочу использовать для создания всех моих 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

Я думаю, что ваше рабочее пространство установлено из раба. и он не читает .m2 из вашего контейнера

вы можете попробовать использовать его плагин - https://wiki.jenkins-ci.org/display/JENKINS/Config+File+Provider+Plugin, чтобы создать файл settings.xml и настроить свой шаг сборки MVN для его использования.

+0

Настоящий раб является контейнером. Я думаю, что мастер jenkins подключается непосредственно к этому подчиненному контейнеру и вообще не взаимодействует с хост-системой докера (порт 22 отправляется в sshd подчиненного контейнера). Это означает, что рабочее пространство также находится внутри подчиненного контейнера. Мне нравится плагин, который вы упомянули, хотя :) – fishi

+0

Думаю, вам стоит попробовать плагин, у вас будет ваша конфигурация в одном родовом месте, он прост в использовании. Если вам нужна помощь, дайте мне знать –