运行器镜像 Ubuntu 22.04 月度更新:升级前先看这 4 处
2026/9/12 7:40:46 网站建设 项目流程

运行器镜像 Ubuntu 22.04 月度更新:升级前先看这 4 处

【免费下载链接】runner-imagesGitHub Actions runner images项目地址: https://gitcode.com/GitHub_Trending/ru/runner-images

GitHub Actions 运行器镜像 Ubuntu 22.04 的月度更新已经落地(镜像版本 20260831.284.1,基于 22.04.5 LTS)。变化集中在语言版本线和 Docker、Kubernetes 工具链,另外 22.04 基础镜像已进入弃用周期。如果你的 CI 固定使用 ubuntu-22.04,这篇文章回答两件事:这次升级会不会让你的构建变不稳定,以及迁移节奏怎么排。

TL;DR:4 个直接影响构建的变化

  • toolcache 里 Node 只剩 22/24,默认 22——依赖 Node 20 的任务要走网络拉取;
  • Docker 全家桶到 28.0.4,Compose 2.38.2,kubectl 1.37、Helm 3.21;
  • 浏览器 Chrome/Edge 到 152、Firefox 154,WebDriver 同步锁定;
  • CMake 显式钉在 3.31.6,规避 CMake 4.0 兼容问题。

Node 版本线:默认 22,缓存只留 22/24

配置里 node 的默认值设为 22,toolcache 缓存清单只剩 22.x 和 24.x。workflow 里不声明版本会拿到 22;显式指定 24 能命中缓存;不在清单里的版本线(比如旧的 20)要联网下载,首跑会变慢。落到实际使用上:项目能迁到 22 LTS 就迁,缓存线和默认值对齐,改动最小。

Docker 全家桶与 K8s 客户端工具一起换代

Docker client/server 统一到 28.0.4,Compose v2 到 2.38.2,buildx 同步提升;K8s 一侧 kubectl 1.37.0、Helm 3.21.4、Kind 0.33.0、minikube 1.38.1。可以马上做两件事:workflow 里自己装 kubectl/Helm 的步骤直接删掉,用预装的;用 kind 跑集成测试的话,在脚本里钉住 kind 版本,别跟镜像滚动更新绑死。值得留意的是官方还挂了 22.04/24.04 上 Podman 将降级的公告,依赖 podman 的构建要盯一下。

浏览器与 WebDriver:版本同步锁定

Chrome 和 Edge 到 152.0.x,Firefox 154,驱动与浏览器逐位对齐,Selenium server 4.48.0。浏览器与驱动错配是 E2E 的经典失败来源,这次一起锁定后,测试挂了多半该查页面行为。驱动路径已暴露为 CHROMEWEBDRIVER、GECKOWEBDRIVER 等环境变量,workflow 里下载 driver 的步骤可以省掉。

CMake 钉在 3.31.6,4.0 暂时不会出现

toolset-2204.json 里直接写了钉版本的原因:规避 CMake 4.0 兼容问题,计划复核时间 2026-12-01。对 C++ 和 Android NDK 构建来说,短期构建行为是确定的,不用做 4.0 适配。assets/post-gen 下的三个脚本(统一环境变量、日志清理、systemd 用户常驻)每次构建都会执行,自建服务请注册到 job 里,别依赖镜像内常驻。

按角色看影响

  • 前端/移动端:Node 默认 22 且 24 有缓存;浏览器 152/154;Android SDK platform 覆盖到 37,NDK 默认 27(28/29 也在缓存里),ANDROID_HOME 等变量开箱即用。
  • 后端服务:Java 8 到 25 共五个版本,默认仍是 11,JAVA_HOME_* 直接切换;.NET SDK 8/9/10 三系齐全;PostgreSQL 14.24、MySQL 8.0.46 装好但默认停用。
  • 数据/容器化构建:Docker 28.0.4 全家桶加 buildx,适合做多架构构建;K8s 客户端工具同步换代;kind 集成测试注意钉版本。

升级前后的上手动作清单

  1. 在 job 第一步 echo ANDROID_HOME、JAVA_HOME_11_X64、CHROMEWEBDRIVER,确认预装路径后删掉冗余安装步骤;
  2. 需要数据库时服务默认停用:sudo systemctl start postgresql.service(用户 postgres)或sudo systemctl start mysql.service(root/root);
  3. 语言版本向 toolset-2204.json 的缓存清单对齐:Node 22/24、Python 3.10–3.14、Go 1.24–1.26、Ruby 3.2–4.0,超出范围就预留下载时间;
  4. 容器构建任务挂了,先查 Docker/Compose 版本行为差异,再怀疑镜像本身;
  5. 22.04 系 runner 9 月 17 日起弃用、次年 4 月 17 日完全停支持,尽快在团队内排一个 ubuntu-24.04 迁移窗口。

收尾

这次是常规月度换版,没有结构性变化。真正的决策点只有两个:Node 线要不要调、22.04 迁移什么时候启动。完整版本清单见 Ubuntu2204-Readme.md,建议升级前对关键 job 跑一轮回归。

【免费下载链接】runner-imagesGitHub Actions runner images项目地址: https://gitcode.com/GitHub_Trending/ru/runner-images

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询