首页 > 解决方案 > 在 dockerfile 中从 github 安装 jenkins 插件

问题描述

我有一个简单的 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 repo 的一个分支安装插件。

我发现在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 中不可能,是否有替代方案?

标签: dockerjenkinsplugins

解决方案


挖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

推荐阅读