将Jenkins插件安装到Docker Jenkins

Ren*_*ler 21 linux jenkins docker dockerfile

我有以下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
Run Code Online (Sandbox Code Playgroud)

我正在尝试安装一些额外的插件,但它给我一个错误说 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
Run Code Online (Sandbox Code Playgroud)

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

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

Adr*_*uat 39

我无法阅读您的屏幕截图,但您似乎没有遵循官方说明.请参阅"安装更多工具"下的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
Run Code Online (Sandbox Code Playgroud)

我认为你的方法不起作用的原因是在启动脚本中进行了一些处理.

  • 运行/usr/local/bin/install-plugins.sh </usr/share/jenkins/plugins.txt (2认同)
  • 有谁举过plugins.txt的示例?也许一些bitbucket插件? (2认同)

Kar*_*bak 15

install-plugins.sh已弃用。我不得不切换到jenkins-plugin-cli

FROM jenkins/jenkins

...

RUN jenkins-plugin-cli \
    --plugins \
    git \
    workflow-aggregator \
    blueocean \
    other-plugins 
Run Code Online (Sandbox Code Playgroud)

jenkins-plugin-cli还支持-f参数,它将插件列表作为文件获取。

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