docker - 在 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 中不可能,是否有替代方案?
解决方案
挖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
推荐阅读
- mysql - 在 SQL 中创建给定开始和结束值的直方图
- docker - 创建“STDIN”时出错:运行 skaffold dev 时发生内部错误
- android - Android CameraX 实时图像处理
- python - 用于 ATM 和 Arduino 矩阵键盘的 Tkinter GUI
- html - Flex 的成长不受儿童大小的影响
- python - 如何使用python中的数学模块生成随机浮点数
- dictionary - 从 terraform 中的 yaml 模板识别地图
- python - 如何让 Apache Airflow 中的 DAG 像简单的 cron 作业一样运行?
- c# - Xamarin.Forms 将默认值绑定到 DisplayPromptAsync
- c - 大师冥想错误:使用自定义库时核心 0 恐慌(加载禁止)