在Docker Jenkins中安装Jenkins插件

29

我有以下Dockerfile文件,基于jenkins镜像构建:

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

我想安装一些额外的插件,但是它给了我一个错误,显示没有这样的文件或目录 enter image description here

然后我启动并连接到该构建步骤的容器,以便“调试”错误: enter image description here

然而,我找不到原因,因为每个目录似乎都存在。此外,如果我手动在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中安装插件?

2个回答

49

我无法阅读您的截图,但是您似乎没有遵循官方说明。请查看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

我认为你的方法无法正常工作的原因与启动脚本中的某些处理有关。


Adrian,我按照你写的做了,但仍然和Rene遇到了同样的问题。 - vogash
@vogash,你是编辑正在运行的容器还是 Dockerfile?Adrian,脚本现在被称为 install-plugins.sh,因为 plugin.sh 返回错误。 - sidhuko
2
运行 /usr/local/bin/install-plugins.sh < /usr/share/jenkins/plugins.txt - 3h4x
感谢@JasonRitchie和3h4x,我已经更新了答案。 - Adrian Mouat
2
有没有人有 plugins.txt 的例子?也许是一些 Bitbucket 插件? - Alexander Mills
显示剩余3条评论

11

install-plugins.sh 已经被弃用。我必须转而使用 jenkins-plugin-cli

FROM jenkins/jenkins

...

RUN jenkins-plugin-cli \
    --plugins \
    git \
    workflow-aggregator \
    blueocean \
    other-plugins 

jenkins-plugin-cli还支持-f参数,以文件形式获取插件列表。

详细信息请参见Jenkins官方文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接