1987WEB视界-分享互联网热门产品和行业

您现在的位置是:首页 > WEB开发 > 正文

WEB开发

JenkinsagentDocker镜像重新命名了,你知道吗?

1987web2023-10-06WEB开发88

我们正式宣布 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 Earlkrufab进行的存储库重组工作,这使重命名成为可能!还要感谢Tim JacombMarky JacksonMark WaiteIvan 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个问题,但我们会完成这个目标。对于任何贡献将不胜感激!

查看文中链接,请点击阅读原文】

推荐阅读

第10期 Jenkins 社区在线交流

Jenkins CLI 命令行 v0.0.28

手把手教会你 Jenkins 备份与恢复

CI/CD 哪家强 - 主流开源 CI 工具对比

Tekton 流水线发布首个官方 Beta 版本

Jenkins流水线与k8s的持续集成落地分享

译者:donhui