【问题标题】:Jenkins Slave can't read settings.xmlJenkins Slave 无法读取 settings.xml
【发布时间】:2017-06-04 10:17:21
【问题描述】:

我已经为 Docker 创建了一个 jenkins 从属映像,我想用它来构建我所有的 Java 项目,但是,我不知道如何引用 .m2/settings.xml 文件来告诉它在哪里拉出来。

我的 Dockerfile 是:

FROM openjdk:8
MAINTAINER Chris Hudson <chudson@amelco.co.uk>

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 Central 中提取,而不是从设置文件中配置的本地 Artifactory 实例中提取。

这在我在 Jenkins Master 上运行时有效,但我想将构建卸载到从属服务器,但我不知道如何正确配置 Maven。

【问题讨论】:

    标签: java maven jenkins docker settings


    【解决方案1】:

    我认为您的工作区是从从站安装的。并且它没有从您的容器中读取 .m2

    您可以尝试使用他的插件 - https://wiki.jenkins-ci.org/display/JENKINS/Config+File+Provider+Plugin 创建 settings.xml 并配置您的 MVN 构建步骤以使用它。

    【讨论】:

    • slave 本身就是一个容器。我认为jenkins master直接与这个slave容器连接,根本不与docker主机系统交互(端口22转发到slave容器的sshd)。这意味着工作空间也在从容器内。我喜欢你提到的插件:)
    • 我认为你应该试试这个插件,你的配置会放在一个通用的地方,它很容易使用。如果您需要任何帮助,请告诉我
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    • 2013-06-30
    • 1970-01-01
    相关资源
    最近更新 更多