问题:我似乎无法使用Dockerfile和plugins.txt组合成功地将mercurial插件安装到jenkins。
到目前为止我做了什么:
我有一个加载Jenkins的Dockerfile。它有以下几行:
FROM jenkins:1.642.1
COPY plugins.txt /usr/share/jenkins/plugins.txt
RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt
我的plugins.txt有这一行:
mercurial:1.54
当我构建图像并运行容器时,一切似乎都有效,没有任何错误或抱怨。但是当我去管理插件时,Mercurial插件没有标记为已安装,如果我尝试进行构建,Mercurial在源代码管理下不是一个选项。
我试过去:
<jenkins ip address>:8080/reload
以及&#34;从磁盘重新加载配置&#34; Manage Jenkins中的选项。 Mercurial在其中任何一个之后仍然没有明显的安装。
我也在命令行上完成了这个:
docker exec -i -t container bash
ls /var/jenkins_home/plugins/
在这一点上,我完全感到困惑,因为列表中有mercurial,mercurial.jpi和mercurial.jpi.pinned。有没有人对此有任何想法?我想在Jenkins上安装Mercurial,只要它从Dockerfile加载而不必手动操作......
另外,我尝试使用git-changelog执行此操作,以查看另一个插件是否可以更好地工作,并且具有相同的结果。
答案 0 :(得分:2)
正如您在Mercurial Plugin wiki page上看到的那样,该插件目前有四个强制依赖项,一个是可选的:
您正在使用Jenkins Docker镜像的插件安装机制不会自动为您安装相关插件,如jenkins
image的文档中所述:
需要列出所有插件,因为没有传递依赖性解析。
因此,您需要在plugins.txt
文件中另外列出这些插件以及其传递依赖项中的任何一个。
目前,获取完整列表的最简单方法是启动容器(可能没有plugins.txt
),然后通过插件管理器安装Mercurial插件,插件管理器将与所有它的依赖关系。然后,您可以通过$JENKINS_HOME/plugins
查看需要哪些插件的列表。