运行器镜像 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 集成测试注意钉版本。
升级前后的上手动作清单
- 在 job 第一步 echo ANDROID_HOME、JAVA_HOME_11_X64、CHROMEWEBDRIVER,确认预装路径后删掉冗余安装步骤;
- 需要数据库时服务默认停用:
sudo systemctl start postgresql.service(用户 postgres)或sudo systemctl start mysql.service(root/root); - 语言版本向 toolset-2204.json 的缓存清单对齐:Node 22/24、Python 3.10–3.14、Go 1.24–1.26、Ruby 3.2–4.0,超出范围就预留下载时间;
- 容器构建任务挂了,先查 Docker/Compose 版本行为差异,再怀疑镜像本身;
- 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),仅供参考