linux - 将 Jenkins 插件安装到 Docker Jenkins

标签 linux jenkins docker dockerfile

我有以下以 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 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 中安装插件?

最佳答案

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

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

关于linux - 将 Jenkins 插件安装到 Docker Jenkins,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29328278/

相关文章:

maven - 在 Jenkins 管道中解析 pom.xml 文件

grails - 如何使用Jenkins,Grails和Geb/Spock运行特定规范列表

java - 如何使用 Fabric8 docker-maven-plugin 从 Dockerfile 构建 docker 镜像?

java - 如何使用 docker 运行 shell 脚本和 java 应用程序?

java - 在 docker 中更改 JAVA_HOME

linux - 使用 grep 操作文本文件

docker - 如何将 CA 根证书添加到 Jenkins Docker 容器上的 LDAP keystore ?

c - fork() 情况下的全局变量值

python - 在 Ubuntu 上使用 Python Selenium 上传文件

linux - 无法 telnet kube-proxy 公开的 localhost 端口