专栏首页JenkinsJenkins agent Docker 镜像重新命名了,你知道吗?

Jenkins agent Docker 镜像重新命名了,你知道吗?

我们正式宣布 Jenkins agent 官方 Docker 镜像重命名了。这对 Jenkins 用户不会产生任何直接影响,但是希望各位逐渐升级其实例。本文提供了新镜像名称、升级过程以及旧镜像支持策略等信息。我们还将讨论在 Jenkins 中 Docker 包的下一步计划。

一、新镜像名称

  • jenkins/agent 镜像:原名称为jenkins/slave,从4.3-2 开始更名为 jenkins/agent
  • jenkins/inbound-agent 镜像:原名称为 jenkins/jnlp-slave ,从 4.3-2 开始更名为 jenkins/inbound-agent
  • jenkins/ssh-agent 镜像:原名称为 jenkins/ssh-slave ,从 2.0.0 开始更名为 jenkins/ssh-agent

请参阅下面的升级指南。

二、为什么要重新命名

"slave" 一词在开源社区中被广泛认为是不合适的。它已于2016年在 Jenkins 2.0中正式弃用,但在某些 Jenkins 组件中仍有遗留用法。

我们有个单独的 Epic: JENKINS-42816:Slave 到 Agent 的重命名遗留问题 用于跟踪此类问题的清理。官方 Docker agent 镜像是一个显而易见的案例,要修改在 DockerHub 上的旧版本镜像并非易事。很高兴这次更新终于解决了镜像命名问题。

另一个值得注意的变化是使用 inbound agent 代替 JNLP agent 术语。历史上,"JNLP" 已被用作远程协议的名称。JNLP 代表 Java Network Launch Protocol,它是 Java Web Start 的一部分。在 Java 1.8 上运行 agent 时,Jenkins 支持 agent 的 Java Web Start 模式,但是我们的网络协议基于 TCP 的,与 Java Network Launch Protocol 无关。此名称从一开始就非常混乱,随着 Jenkins 2.217(JEP-222)中引入 WebSocket 支持而变得更糟。Docker agent 镜像支持 WebSockets,因此我们决定将镜像名称更改为 jenkins/inbound-agent,这样可以防止进一步的混乱。Inbound agent 术语是指 agent 协议,其中 agent 通过不同的协议启动与 Jenkins master 的连接。

非常感谢 Alex Earl 和 krufab 进行的存储库重组工作,这使重命名成为可能!还要感谢 Tim Jacomb、Marky Jackson、Mark Waite、Ivan Fernandez Calvo 和其他贡献者的评审和测试。

三、升级和兼容性说明

好消息是此命名不会引起重大变化。所有镜像已被修改为在内部使用新术语。如果使用以前镜像的最新版本,那么可以使用新名称替换旧名称。这些名称可以在 Dockerfile、脚本和 Jenkins 配置中引用。

我们将继续在 DockerHub 上更新旧镜像至少3个月(直到2020年8月5日)。不会在旧镜像中添加任何新配置和平台,但是所有现有配置和平台都将保持可用( Java 1.8的 Debian 和 Java 1.8的 Alpine,等等)。2020年8月5日之后,旧镜像将不再更新,但以前的版本将仍然对 DockerHub 的用户可用。

四、下一步计划是什么

我们将继续在 Jenkins 组件中重命名引用旧镜像名称的 Docker 镜像。还有一组便利的 Docker 镜像,其中包括 Maven 或 Gradle 之类的构建工具,这些工具将在以后重命名。该 jenkins/ssh-agent 镜像将来也可能会重命名;请参阅此开发人员邮件列表线程中正在进行的讨论。

如果您对 Jenkins Docker 包中的新功能非常感兴趣,请继续关注未来的公告!您可以在 Jenkins 公开路线图中 找到多个正在进行的计划 (在草案阶段,请参阅 JEP-14)

一些故事:

  • Windows 镜像的一般可用性。
  • 支持更多平台(AArch64、IBM s390x、PowerPC)。
  • 切换到 AdoptOpenJDK。
  • 引入多平台 Docker 镜像。

如果您对这些项目中的任何一个感兴趣并想做出贡献,请联系 Platform Special Interest Group,该小组负责协调与 Docker 中的 Jenkins 相关的计划。

关于 Docker 镜像之外的 agent 术语清除,我们将继续在 Advocacy&Outreach SIG 中进行此项目。如果您在 Jenkins 组织中的任何地方(Web UI、文档等)看到过时的 "slave" 术语的使用,请随时提交 pull request 或在这个 Epic : JENKINS-42816:Slave 到 Agent 的重命名遗留问题 中报告问题。在 jenkinsci GitHub 组织中恰好有 3000个问题,但我们会完成这个目标。对于任何贡献将不胜感激!

本文分享自微信公众号 - Jenkins(Jenkins-Community),作者:Oleg Nenashev

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Windows Docker Agent 镜像可以常规使用了

    我们宣布可以使用官方的 Windows agent Docker 镜像了,这些镜像允许在 Docker 和 Kubernetes 上使用 Windows 操作系...

    LinuxSuRen
  • 使用 Nexus OSS 为 Docker 镜像提供代理/缓存功能

    在企业环境中工作,无论是商业组织还是非商业组织,你会发现在互联网上获取信息存在着种种限制。

    LinuxSuRen
  • 从 Jenkins Master 扩展网络连接

    Oleg Nenashev 和我今年将在旧金山的 DevOps World | Jenkins World 上,做"从 Jenkins Master 扩展网络连...

    LinuxSuRen
  • 什么是sparklyr

    我们(RStudio Team)今天很高兴的宣布一个新的项目sparklyr(https://spark.rstudio.com),它是一个包,用来实现通过R连...

    Fayson
  • 在win10的WSL中设置前端开发环境

    经过不断的迭代,Win10 下已经发布多时的 Linux 子系统(WSL - Windows Subsystem for Linux)现在已经比较成熟了;WSL...

    江米小枣
  • 微信libco协程库源码分析

    libco是微信后台开发和使用的协程库,同时应该也是极少数的将C/C++协程直接运用到如此大规模的生成环境中的案例了。

    cyhone
  • Ubuntu配置Symfony环境

    1、装好ubuntu使用 sudo passwd root 设置root密码 2、安装ssh sudo apt-get install openssh-serv...

    苦咖啡
  • 康盛(discuz )牛逼的PHP加解密算法函数

      康盛的 authcode 函数很牛叉,是一个具有有效期的加解密函数,同一个字符每次加密所产生的结果都是不一致的,并且可以自定义设置过期时间。

    那一叶随风
  • Go 语言并发编程系列(二)—— Go 协程实现原理和使用示例

    Go 语言的协程实现被称之为 goroutine,由 Go 运行时管理,在 Go 语言中通过协程实现并发编程非常简单:我们可以在一个处理进程中通过关键字 go ...

    学院君
  • 接口返回图片二进制流前端展示

    咋一看,不是base64格式,二十二进制的图片流数据,前端要想展示,只需要转换数据格式为base64即可。

    用户1141560

扫码关注云+社区

领取腾讯云代金券