将 Jenkins 插件安装到 Docker Jenkins
Installing Jenkins Plugins to Docker Jenkins
我有以下 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
我正在尝试安装一些额外的插件,但它给我一个错误 no such file or directory
然后我启动并连接到这个构建步骤的容器,以便 "debug" 错误:
但是,我找不到原因,因为每个目录似乎都存在。此外,如果我然后 运行 在 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
中安装插件?
我看不懂你的屏幕截图,但你似乎没有按照官方说明进行操作。请参阅 "Installing more tools" 下的 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
我认为您的方法不起作用的原因是在启动脚本中进行了一些处理。
我有以下 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
我正在尝试安装一些额外的插件,但它给我一个错误 no such file or directory
然后我启动并连接到这个构建步骤的容器,以便 "debug" 错误:
但是,我找不到原因,因为每个目录似乎都存在。此外,如果我然后 运行 在 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
中安装插件?
我看不懂你的屏幕截图,但你似乎没有按照官方说明进行操作。请参阅 "Installing more tools" 下的 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
我认为您的方法不起作用的原因是在启动脚本中进行了一些处理。