詹金斯 2 覆盖 plugins.txt

Jenkins 2 override plugins.txt

我正在从 Jenkins 1.6 迁移到 Jenkins 2.0。我正在使用 docker 创建和 运行 Jenkins。

并且为了配置为不可变的 jenkins,我们过去常常复制所有 xml 配置文件并使用 plugins.txt 安装所有必要的插件。

但现在的问题是,在我们初始化 Jenkins 并连接后,我只看到一个向导屏幕,要求我输入管理员密码,该密码位于路径中。 输入密码后,他要求安装插件,我希望它已经安装好了。

完成该向导后,我没有为我的 plugins.txt 列表安装任何插件,或者我在用户文件夹中传递了任何用户。

知道如何解决这个问题吗?在 Jenkins 1.6 中一切正常。

你把你的 plugins.txt 放在哪里? plugins.txt 的内容将在您构建映像时安装在 jenkins 中。所以你需要用你自己的docker文件重建jenkins:2.0

FROM jenkins:2.0
COPY plugins.txt /usr/share/jenkins/plugins.txt
RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt

plugins.txt 脚本放在同一个文件夹中。 我的 plugins.txt

的内容
greenballs:1.15

比使用 docker build -t my-jenkins:2.0 .

构建您的图像

我不知道你是如何迁移你的工作的,但我想像删除旧的 jenkins 容器但保留持久的 docker 卷(或你正在挂载的主机上的映射文件夹) ).但是在构建新的 jenkins 之后,使用 -v 选项启动 jenkins 以绑定到您的旧卷。

$ docker run -d -v /content-folder:/var/jenkins_home -p 8080:8080 my-jenkins:2.0

Jenkins 将从已安装的插件 + 1.6 配置的内容开始。

我只能用插件测试这部分,它对我有用。在 docker build 之后,我执行了 docker run -d -p 8080:8080 my-jenkins:2.0。检查该容器的 docker logs 以获取 initialAdminPassword。没有在编辑器中安装任何插件并创建了一个作业。成功后 运行 我看到了绿球而不是蓝色。