【问题标题】:Installing Jenkins Plugins to Docker Jenkins将 Jenkins 插件安装到 Docker Jenkins
【发布时间】:2015-06-02 09:50:26
【问题描述】:

我有以下以jenkins 为基础镜像的 Dockerfile:

FROM jenkins
USER root
ENV JENKINS_MIRROR http://mirrors.jenkins-ci.org
RUN for plugin in git-client git ws-cleanup ; do wget -O $JENKINS_HOME/plugins/${plugin}.hpi $JENKINS_MIRROR/plugins/${plugin}/latest/${plugin}.hpi ; done
EXPOSE 8080

我正在尝试安装一些额外的插件,但它给了我一个错误提示 no such file or directory

然后我启动并连接到此构建步骤的容器以“调试”错误:

但是,我找不到原因,因为每个目录似乎都存在。此外,如果我随后在 bash 中手动运行 for 循环,则所有插件都已正确安装...

我进一步注意到,插件的安装工作正常,如果我将它们安装在根目录中,如下所示:

RUN for plugin in git-client git ws-cleanup ; do wget -O ${plugin}.hpi $JENKINS_MIRROR/plugins/${plugin}/latest/${plugin}.hpi ; done

但是,这是错误的地方,因为它们必须放在目录 $JENKINS_HOME/plugins 中

为什么我无法在$JENKINS_HOME/plugins 中安装插件?

【问题讨论】:

    标签: linux jenkins docker dockerfile


    【解决方案1】:

    我无法阅读您的屏幕截图,但您似乎没有遵循官方说明。请参阅“安装更多工具”下的https://github.com/cloudbees/jenkins-ci.org-docker。注意:

    • 您应该将插件保存到/usr/share/jenkins/ref/plugins
    • 您可以改用plugins.txt 文件,其中包含插件的名称,并且您可以使用提供的plugins.sh 脚本进行处理。这看起来像:
    COPY plugins.txt /usr/share/jenkins/plugins.txt
    RUN /usr/local/bin/install-plugins.sh < /usr/share/jenkins/plugins.txt
    

    我认为您的方法不起作用的原因与启动脚本中的某些处理有关。

    【讨论】:

    • 阿德里安,我完全按照你写的做了,但还是和雷内一样的问题
    • @vogash 您是否编辑了正在运行的容器或 dockerfile? Adrian,该脚本现在称为 install-plugins.sh,因为 plugin.sh 返回错误。
    • install-plugins.sh 不接受 txt 文件。但是它确实接受来自标准输入的输入。 RUN cat /usr/share/jenkins/plugins.txt | /usr/local/bin/install-plugins.sh
    • 运行 /usr/local/bin/install-plugins.sh /share/jenkins/plugins.txt
    • 有没有人能举例说明 plugins.txt 的样子?也许一些 bitbucket 插件?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多