在dockerfile中从github安装jenkins插件

时间:2019-04-23 08:40:03

标签: docker jenkins plugins

我有一个简单的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中不可能,还有其他选择吗?

2 个答案:

答案 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