Selenium Grid 4.34.0 中的 Firefox 122.0.1 镜像发布:tag_and_push_browser_images 脚本与镜像标签规范深度解析
测试后端云原生容器编排可观测性【免费下载链接】docker-seleniumProvides a simple way to run Selenium Grid with Chrome, Firefox, and Edge using Container Platform, making it easier to perform browser automation at scale项目地址https://gitcode.com/GitHub_Trending/do/docker-selenium点击查看免费下载本篇技术指南以 docker-selenium 仓库中 4.34.0 版本的 Firefox 122.0.1 发布记录 为核心完整还原tag_and_push_browser_images.sh脚本为selenium/node-firefox与selenium/standalone-firefox生成全部镜像标签的流程。你将掌握 Selenium Grid 镜像标签命名规范、脚本参数语义、Firefox 与 GeckoDriver 版本配对方式以及如何在实际项目中正确选取与锁定镜像标签。这份发布记录还原了什么归档于CHANGELOG/archived/4.34.0/目录下的firefox_122.md是一份真实的构建产物日志记录了 2025-07-27 这一天发布流水线针对 Selenium Grid 4.34.0 版本为 Firefox 122.0.1 批量打标签的完整输出。原文如下./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true Tagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium Selenium Grid version - 4.34.0-20250727 Firefox version - 122.0.1 Short Firefox version - 122.0 GeckoDriver version - 0.36.0 Short GeckoDriver version - 0.36 Tagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-grid-4.34.0-20250727 Tagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-grid-4.34.0-20250727 Tagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-20250727 Tagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-20250727 Tagged selenium/node-firefox:122.0.1-20250727 Tagged selenium/standalone-firefox:122.0.1-20250727 Tagged selenium/node-firefox:122.0-geckodriver-0.36-grid-4.34.0-20250727 Tagged selenium/standalone-firefox:122.0-geckodriver-0.36-grid-4.34.0-20250727 Tagged selenium/node-firefox:122.0-geckodriver-0.36-20250727 Tagged selenium/standalone-firefox:122.0-geckodriver-0.36-20250727 Tagged selenium/node-firefox:122.0-20250727 Tagged selenium/standalone-firefox:122.0-20250727这份日志透露了三层信息本次发布的三组件版本组合Selenium Grid Server 4.34.0、Firefox 122.0.1、GeckoDriver 0.36.0、镜像标签的完整命名空间6 组标签 × node-firefox/standalone-firefox 两种镜像以及脚本位置参数语义。下文逐一拆解。脚本参数与执行流程命令./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true共传入 6 个位置参数与脚本开头tag_and_push_browser_images.sh的声明一一对应位置参数本次取值含义1VERSION4.34.0Selenium Grid 版本号2BUILD_DATE20250727构建日期与版本号拼接为4.34.0-202507273NAMESPACEselenium镜像命名空间仓库前缀4PUSH_IMAGEfalse是否执行docker pushfalse表示仅本地打标签5BROWSERfirefox目标浏览器决定走case分支6RELEASE_OLD_VERSIONtrue是否为旧版本补发标签决定是否生成无日期的纯版本标签该脚本由 Makefile 的tag_and_push_firefox_imagestarget 调用tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) firefox $(RELEASE_OLD_VERSION)属于发布流水线中为所有浏览器镜像统一打标签的一部分——同一套脚本以不同BROWSER参数分别服务 chrome、chromium、edge、firefox、chrome-for-testing 五种镜像家族。版本探测环节脚本在打标签前会先运行已构建好的镜像来探测实际安装的浏览器与驱动版本tag_and_push_browser_images.sh而不是直接相信构建参数FIREFOX_VERSION$(docker run --rm ${NAMESPACE}/node-firefox:${TAG_VERSION} firefox --version | awk {print $3}) GECKODRIVER_VERSION$(docker run --rm ${NAMESPACE}/node-firefox:${TAG_VERSION} geckodriver --version | awk NR1{print $2})这正是日志中Firefox version - 122.0.1、GeckoDriver version - 0.36.0两行的来源以4.34.0-20250727为源标签的 node-firefox 镜像其内部二进制自报的版本号被当作标签的事实依据。这样可确保标签始终与实际安装的软件版本严格一致避免人工填写版本号造成的漂移。Short 版本截断逻辑脚本中的short_version()函数tag_and_push_browser_images.sh将完整版本号按点号拆分后仅保留前两段function short_version() { local __long_version$1 local __version_split(${__long_version//./ }) echo ${__version_split[0]}.${__version_split[1]} }因此122.0.1 → 122.00.36.0 → 0.36。这种长版本 短版本双轨标签的设计是为了让使用者在精确锁定补丁号与跟随同主/次版本的最新构建之间自由选择。六组标签的语义逐一解析本次发布为每个镜像生成了 6 组标签全部携带构建日期。下表以selenium/node-firefox为例selenium/standalone-firefox完全同构标签后缀包含信息典型用途122.0.1-geckodriver-0.36.0-grid-4.34.0-20250727Firefox 补丁号 GeckoDriver 补丁号 Grid 版本 构建日期全要素精确锁定可复现性最强122.0.1-geckodriver-0.36.0-20250727Firefox 补丁号 GeckoDriver 补丁号 构建日期锁定浏览器与驱动补丁级版本122.0.1-20250727Firefox 补丁号 构建日期仅锁定 Firefox 补丁号122.0-geckodriver-0.36-grid-4.34.0-20250727次版本 短驱动版本 Grid 版本 构建日期短版本的全要素组合122.0-geckodriver-0.36-20250727次版本 短驱动版本 构建日期跟随 122.0 系列最新补丁122.0-20250727次版本 构建日期最简化的可复现标签这些标签由脚本firefox分支中的FIREFOX_TAGS数组生成tag_and_push_browser_images.sh随后对每个标签依次调用retag node-firefox与retag standalone-firefoxtag_and_push_browser_images.sh。retag()函数tag_and_push_browser_images.sh在PUSH_IMAGEfalse时仅执行docker tag并在本地缓存中新增一个别名因此日志中的 12 行Tagged实际上是同一镜像的 12 个别名。RELEASE_OLD_VERSIONtrue 意味着什么脚本在RELEASE_OLD_VERSIONtrue时不再生成不带构建日期的纯版本标签如122.0.1-geckodriver-0.36.0、122.0.1、122.0等对应 tag_and_push_browser_images.sh 中被跳过的分支。原因从归档路径即可理解4.34.0 已是历史版本Firefox 122.0.1 在更新的 Grid 版本中已拥有主发布标签若此处再打上无日期的纯版本标签就会覆盖新版本的标签造成冲突。因此旧版本补发一律只生成带YYYYMMDD的标签与新版镜像的标签互不干扰——这正是该 CHANGELOG 文件被归档到archived/4.34.0/目录的原因。作为对照在较新的 4.48.0 发布记录 中Firefox 122.0.1 依然出现但 GeckoDriver 已升级为 0.37.1可见同一浏览器版本可以随驱动升级在不同 Grid 版本中重新打包选择标签时必须同时关注浏览器与驱动两者的版本。标签背后的构建事实Firefox 122.0.1 与 GeckoDriver 0.36.0 如何进入镜像Firefox 安装NodeFirefox/Dockerfile 通过ARG FIREFOX_VERSION默认latest决定安装方式对于数值版本如 122.0.1优先从 Mozilla CDN 下载对应的.deb包若下载返回 404 则回退到.tar.bz2源码包交由 install-firefox-package.sh 完成安装——该脚本会根据 URL 后缀分别走 deb 安装、tar.bz2/tar.xz 解压安装三条路径并在解压后将二进制软链到/usr/bin/firefox。需要注意一个架构前提Dockerfile 的版本判断逻辑NodeFirefox/Dockerfile规定只有在 amd64 架构、或使用-latest系列占位版本、或主版本号 ≥ 136 时才执行上述精确下载安装若是在 aarch64 架构且指定了 136 以下的数值版本122 正属于此列则会回退安装nightly-latest。因此122.0.1 标签对应的 Firefox 精确安装路径仅在 amd64 平台上成立跨架构使用时需留意这一限制。GeckoDriver 安装NodeFirefox/Dockerfile 从 mozilla/geckodriver 的 GitHub Releases 按架构amd64 →linux64aarch64 →linux-aarch64下载geckodriver-0.36.0-linux64.tar.gz解压后以geckodriver-$GK_VERSION形式存放到/opt并软链到/usr/bin/geckodriver之后通过firefox --version与geckodriver --version的输出写入/opt/selenium/browsers/firefox/下的name、version、binary_location三个文件NodeFirefox/Dockerfile供 Selenium Grid 的 Node 配置读取。镜像同时声明了SE_OTEL_SERVICE_NAMEselenium-node-firefox与SE_NODE_ENABLE_MANAGED_DOWNLOADStrue两个环境变量。这解释了为什么日志中探测到的版本122.0.1 / 0.36.0与标签完全一致标签来源于镜像内部二进制自报版本而二进制版本由 Dockerfile 的安装逻辑保证。如何拉取与使用这些镜像在 Grid 中运行 node-firefox按 docs/docker-hub/node-firefox.md 的指引先创建网络并启动 Hub再启动 Nodedocker network create grid docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:latest docker run -d --net grid -e SE_EVENT_BUS_HOSTselenium-hub \ --shm-size2g \ selenium/node-firefox:122.0-geckodriver-0.36-grid-4.34.0-20250727随后将 WebDriver 测试指向http://localhost:4444即可。运行浏览器镜像时务必携带--shm-size2g以使用宿主机共享内存若需观察容器内运行画面可访问http://localhost:7900/?autoconnect1resizescalepasswordsecret。按标签选型建议追求稳定复现使用最长的全要素标签122.0.1-geckodriver-0.36.0-grid-4.34.0-20250727它与 CI 产物一一对应任何环境拉取结果完全一致跟随补丁更新使用122.0-20250727这类短版本标签在主版本线内灵活漂移区分 Node 与 Standalone需要独立 Selenium Server 时选用standalone-firefox系列需要接入已有 Grid Hub 时选用node-firefox系列两者标签后缀完全一致可无缝切换。小结通过这份 4.34.0 的发布日志可以完整还原 docker-selenium 镜像发布的三个关键事实其一镜像标签由 tag_and_push_browser_images.sh 依据镜像内二进制自报版本动态生成保证标签与内容严格一致其二长/短双轨 构建日期的标签矩阵详见 docs/docker-hub/node-firefox.md 中的 Tag 结构说明兼顾了精确锁定与便捷漂移两种使用诉求其三RELEASE_OLD_VERSIONtrue的参数设计让旧版本补发只生成带日期的标签从而避免覆盖新版本主标签。对于任何需要精确锁定浏览器版本的自动化测试团队而言直接使用本文给出的全要素标签即可获得确定性的运行环境。赞分享测试后端云原生容器编排可观测性【免费下载链接】docker-seleniumProvides a simple way to run Selenium Grid with Chrome, Firefox, and Edge using Container Platform, making it easier to perform browser automation at scale项目地址https://gitcode.com/GitHub_Trending/do/docker-selenium点击查看免费下载相关推荐Texture 发布流程完全指南从 Changelog 生成到 CocoaPods 发布Texture 发布流程完全指南从 Changelog 生成到 CocoaPods 发布 本篇技术指南以 RELEASE.md https://link.gi测试后端云原生容器编排可观测性docker-selenium 4.34.0 Firefox 119 镜像发布全解析从打标脚本到镜像标签规范docker selenium 4.34.0 Firefox 119 镜像发布全解析从打标脚本到镜像标签规范 导读 本篇以 docker selenium 仓测试后端云原生容器编排可观测性Selenium Grid 4.30.0 的 Chrome 134 镜像发布全解析tag_and_push_browser_images 脚本与 12 个镜像标签命名规范Selenium Grid 4.30.0 的 Chrome 134 镜像发布全解析tag_and_push_browser_images 脚本与 12 个镜像测试后端云原生容器编排可观测性上一篇拆解MindSpeed LLM4层架构与核心模块看懂昇腾大模型训练框架的设计下一篇QKeyMapper特殊映射键参数速查SendText、Run、SetVolume等20隐藏功能全盘点创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

CMake FindGnuTLS 模块实战指南:GnuTLS 库查找、版本检测与导入目标

CMake FindGnuTLS 模块实战指南:GnuTLS 库查找、版本检测与导入目标

构建工具开发工具CLI 【免费下载链接】CMake Mirror of CMake upstream repository 项目地址: https://gitcode.com/gh_mirrors/cm/CMake 点击查看 免费下载 导读 本文以 CMake 官方仓库中的 FindGnuTLS 模块(Modules/FindGnuTLS.cmake)为对…

2026/10/10 13:54:36 阅读更多 →
华为DIGIX视觉季军方案源码拆解:从工程结构到复现避坑

华为DIGIX视觉季军方案源码拆解:从工程结构到复现避坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 7:49:21 阅读更多 →
小白也能轻松玩转龙虾:虾壳云一键部署低成本,桌面快速安装 OpenClaw(附最新安装包)

小白也能轻松玩转龙虾:虾壳云一键部署低成本,桌面快速安装 OpenClaw(附最新安装包)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 14:41:44 阅读更多 →

最新新闻

热电联产机组联合优化调度:Matlab+YALMIP建模风电消纳与储热电锅炉算例

热电联产机组联合优化调度:Matlab+YALMIP建模风电消纳与储热电锅炉算例

1. 冬季供暖季的弃风困局:热电联产机组到底卡在哪每年供暖季一过,风电场的同事就开始盯着调度曲线叹气:白天风光还好,一到后半夜风速上来了,风电场却得压出力,甚至有整场停机的时候。而另一边,热…

2026/10/10 16:01:52 阅读更多 →
用AI高效阅读鸿蒙源码:仓库定位、调用链与实战技巧

用AI高效阅读鸿蒙源码:仓库定位、调用链与实战技巧

简介:面向鸿蒙OS平台的“阅读”应用鸿蒙版仓库源码,特别适合鸿蒙应用开发者、对小说阅读器实现感兴趣的工程师,以及希望复用书源管理方案的技术人员。工程基于ArkTS编写主要页面与业务逻辑,并搭配svg、png等图标与图片资源&#x…

2026/10/10 16:01:52 阅读更多 →
Java IO流深度解析:字节流字符流、缓冲流与序列化实战指南

Java IO流深度解析:字节流字符流、缓冲流与序列化实战指南

1. 别被IO流的类图吓到:先搞懂设计骨架做Java开发几年后回头看,IO流其实是整个Java生态里设计最经典、也最劝退新手的模块之一。所谓“Java进阶--IO流”,不是让你把几十个类的名字背下来,而是先看清这套体系背后的两个核心设计思想…

2026/10/10 16:01:52 阅读更多 →
Vector v0.51.0 版本深度解析:OTLP 编解码、file source 去遗留化与遥测可靠性加固

Vector v0.51.0 版本深度解析:OTLP 编解码、file source 去遗留化与遥测可靠性加固

可观测性数据工程数据集成日志分析 【免费下载链接】vector A high-performance observability data pipeline. 项目地址: https://gitcode.com/GitHub_Trending/vect/vector 点击查看 免费下载 Vector v0.51.0(发布于 2025-11-04)是面向可观…

2026/10/10 16:01:52 阅读更多 →
Spring AI 2.x 深度技术解析:从架构重构到企业级落地,TaoToken 统一 Key 接入实践

Spring AI 2.x 深度技术解析:从架构重构到企业级落地,TaoToken 统一 Key 接入实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 16:01:52 阅读更多 →
探索AI工具——我的Cursor初体验:从Base URL改到TaoToken

探索AI工具——我的Cursor初体验:从Base URL改到TaoToken

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 16:00:51 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:25 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →