我有一个简单的Dockerfile,其中安装了Jenkins和一些插件:
FROM jenkins/jenkins:2.169-alpine
USER root
RUN apk update \
&& apk add --no-cache curl docker jq tzdata \
&& rm -rf /var/cache/apk/*
COPY plugins.txt /usr/share/jenkins/plugins.txt
RUN /usr/local/bin/install-plugins.sh < /usr/share/jenkins/plugins.txt
现在有一个需要自定义补丁的jenkins插件。已经开放了PR,但是已经几个月没有合并了,我已经等不及了,所以我想增加一个步骤,从github存储库的一个分支安装插件。
我发现jenkins-cli.jar
可用之后(因此,不是在构建时),可以执行以下操作以hpi
格式安装插件:
java -jar /var/jenkins_home/war/WEB-INF/jenkins-cli.jar \
-auth user:password \
-s http://localhost:8080 install-plugin file://<HPI_PATH>
,但是在构建时无法运行。 如果在dockerfile中不可能,还有其他选择吗?
答案 0 :(得分:0)
首先在本地构建plugin.hpi,然后在构建步骤中使用copy或Add in Dockerfile将插件添加到jenkins docker映像中。
示例 添加https://updates.jenkins-ci.org/download/plugins/sonar/2.8.1/sonar.hpi / var / jenkins_home / plugins /
或
使用本地构建的hpi文件安装声纳插件。
复制sonar.hpi / var / jenkins_home / plugins /
答案 1 :(得分:0)
在研究PR之后,我在这里https://github.com/jenkinsci/docker/pull/799找到了解决方法
这不是来自github的安装,但可以解决
因此,您只需要在dockerfile的末尾添加(是root而不是jenkins用户):
RUN /usr/local/bin/install-plugins.sh plugin-name:plugin-version:hpi-url