从 Edge 134 发布日志看 docker-selenium 浏览器镜像 Tag 体系与发布流程
测试后端云原生容器编排可观测性【免费下载链接】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 仓库中 CHANGELOG/archived/4.33.0/edge_134.md 记录的一次 Edge 134 镜像发布日志为入口逐行拆解tag_and_push_browser_images.sh的标签生成逻辑、Edge/EdgeDriver 版本的探测方式、Makefile 的集成流程并给出这套多维度 Tag 在 Selenium Grid 中的实际拉取与使用方案。读完本文你将理解selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.33.0-20250606这类长标签每一段的含义并掌握如何精确锁定或宽松追踪某个浏览器版本。一次 Edge 134 发布日志原文解读关联文档记录了docker-selenium在 Selenium Grid 4.33.0 发布周期构建日期 20250606为 Edge 134 镜像打标签的完整执行输出./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false edge true Tagging images for browser edge, version 4.33.0, build date 20250606, namespace selenium Selenium Grid version - 4.33.0-20250606 Edge version - 134.0.3124.95 Short Edge version - 134.0 EdgeDriver version - 134.0.3124.95 Short EdgeDriver version - 134.0 Tagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.33.0-20250606 Tagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.33.0-20250606 Tagged selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-20250606 Tagged selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-20250606 Tagged selenium/node-edge:134.0.3124.95-20250606 Tagged selenium/standalone-edge:134.0.3124.95-20250606 Tagged selenium/node-edge:134.0-edgedriver-134.0-grid-4.33.0-20250606 Tagged selenium/standalone-edge:134.0-edgedriver-134.0-grid-4.33.0-20250606 Tagged selenium/node-edge:134.0-edgedriver-134.0-20250606 Tagged selenium/standalone-edge:134.0-edgedriver-134.0-20250606 Tagged selenium/node-edge:134.0-20250606 Tagged selenium/standalone-edge:134.0-20250606这段日志传递了三条关键信息发布的三要素Selenium Grid 版本4.33.0、浏览器 Edge 版本134.0.3124.95、EdgeDriver 版本134.0.3124.95本次 Edge 与 EdgeDriver 版本号一致这在 Chromium 系驱动中很常见。短版本约定short_version()取主版本号前两段134.0.3124.95的短版本是134.0用于生成大版本别名标签。双镜像双角色每个标签同时打在selenium/node-edgeNode 节点镜像和selenium/standalone-edge独立部署镜像上覆盖两种 Grid 使用形态。标签生成脚本的调用方式与参数语义文档中的命令调用的是仓库根目录下的 tag_and_push_browser_images.sh其位置参数定义如下参数示例值含义$1VERSION4.33.0Selenium Grid 版本号$2BUILD_DATE20250606构建日期YYYYMMDD$3NAMESPACEseleniumDocker Hub 命名空间$4PUSH_IMAGEfalse是否在打标签后执行docker push$5BROWSERedge浏览器类型chrome/chromium/edge/firefox/chrome-for-testing$6RELEASE_OLD_VERSIONtrue是否为旧版本补充无日期别名标签$7PLATFORM默认linux/amd64仅 Chrome 系查询版本时用于--platform注意虽然归档日志中的第 4 个参数为false本次只打标签不推送推送由后续 CI 步骤完成但脚本同时支持传入true直接推送。此外脚本还支持两个环境变量PROMOTE_TAGStrue时改用docker buildx imagetools create在 registry 间直接复制多架构 manifest而不是本地docker tag并可配合PROMOTE_GHCR_NAMESPACE在同一个调用里同步镜像到 GHCR。Edge 分支源码解析版本探测与标签组装在 tag_and_push_browser_images.sh 的edge)分支中核心逻辑分三步1. 从已构建镜像中探测真实版本脚本用docker run --rm临时启动selenium/node-edge:4.33.0-20250606再通过管道提取版本号EDGE_VERSION$(docker run --rm ${NAMESPACE}/node-edge:${TAG_VERSION} microsoft-edge --version | awk {print $3}) EDGEDRIVER_VERSION$(docker run --rm ${NAMESPACE}/node-edge:${TAG_VERSION} msedgedriver --version | awk {print $4})这里的关键在于标签不是按预定计划写死而是从实际构建产物里解析出来的。microsoft-edge --version输出类似Microsoft Edge 134.0.3124.95取第 3 列即得到版本号msedgedriver --version输出第一行包含MSEdgeDriver 134.0.3124.95取第 4 列得到驱动版本。随后short_version()用点号切分取前两段function short_version() { local __version_split(${__long_version//./ }) echo ${__version_split[0]}.${__version_split[1]} }2. 组装标签数组基础标签数组EDGE_TAGS共 6 个按信息完整度分为三组完整版本 完整网格版本 构建日期Edge-edgedriver-Driver-grid-Grid-Date完整版本 构建日期Edge-edgedriver-Driver-Date、Edge-Date短版本含同结构三组ShortEdge-edgedriver-ShortDriver-grid-Grid-Date、ShortEdge-edgedriver-ShortDriver-Date、ShortEdge-Date当RELEASE_OLD_VERSIONfalse时追加 4 个不带日期的滚动别名Edge-edgedriver-Driver、Edge、ShortEdge-edgedriver-ShortDriver、ShortEdge。归档日志恰好记录了 10 个标签的完整输出与6 个含日期 4 个版本别名的标签集合吻合说明历史执行中这批版本别名也被一并生成而当前脚本在RELEASE_OLD_VERSIONtrue时仅保留 6 个含日期标签从脚本第 176 行的if [ ${RELEASE_OLD_VERSION} false ]判断可以看出可以推断归档时期脚本的旧版本语义与现版本存在差异——这正是归档 CHANGELOG 的价值所在它保留了当时的真实发布现场。3. 双镜像循环打标签for edge_tag in ${EDGE_TAGS[]}; do retag node-edge ${edge_tag} retag standalone-edge ${edge_tag} doneretag()函数先构造源镜像selenium/node-edge:4.33.0-20250606再依次docker tag可选docker push到目标标签PROMOTE_TAGStrue时则用docker buildx imagetools create --tag ... --tag ... source直接创建多架构 manifest避免本地docker pull只带回单架构的问题tag_and_push_browser_images.sh。版本从哪来NodeEdge 镜像构建与 Edge/EdgeDriver 安装标签探测的前提是selenium/node-edge:4.33.0-20250606镜像内已经装好了对应版本的 Edge 与 EdgeDriver这由 NodeEdge/Dockerfile 负责Edge 安装默认安装microsoft-edge-stable当EDGE_VERSION指定为microsoft-edge-stable版本号形式时会从 Microsoft 官方仓库安装对于被微软清理的旧版本则从归档源下载对应 deb 包安装NodeEdge/Dockerfile。EdgeDriver 安装默认通过msedgedriver.microsoft.com/LATEST_RELEASE_major_LINUX获取与浏览器主版本匹配的最新驱动若该指针已被清理则回退为精确浏览器版本号并从归档源下载NodeEdge/Dockerfile。浏览器信息落盘构建时将浏览器名称、版本写入/opt/selenium/browsers/edge/供 Grid Node 注册时上报能力同时通过 wrap_edge_binary 包装启动脚本以--no-sandbox启动并支持SE_BROWSER_ARGS_*环境变量注入额外启动参数。这一机制解释了日志中版本号为何如此精确134.0.3124.95是镜像内实际安装的 Edge 二进制版本而非脚本写死的常量。Makefile 集成一次命令打通全流程打标签脚本被 Makefile 的edge_upgrade_version与tag_and_push_edge_images两个目标联动使用edge_upgrade_version: cd ./NodeEdge docker buildx build ... -t $(NAME)/node-edge:$(TAG_VERSION) . cd ./Standalone docker buildx build ... -t $(NAME)/standalone-edge:$(TAG_VERSION) . docker run --rm $(NAME)/standalone-edge:$(TAG_VERSION) /opt/selenium/selenium-server.jar info --version docker run --rm $(NAME)/standalone-edge:$(TAG_VERSION) microsoft-edge --version docker run --rm $(NAME)/standalone-edge:$(TAG_VERSION) msedgedriver --version tag_and_push_edge_images: ./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) edge $(RELEASE_OLD_VERSION)其中VERSION、BUILD_DATE、NAMESPACE、PUSH_IMAGE、RELEASE_OLD_VERSION等变量均可在 Makefile 顶部通过环境变量或命令行覆盖例如make tag_and_push_edge_images VERSION4.33.0 BUILD_DATE20250606 PUSH_IMAGEtrue。tag_and_push_browser_images作为聚合目标会依次为 chrome、chrome-for-testing、chromium、firefox、edge 五种浏览器统一执行标签流程。日志中20250606即当次BUILD_DATE的实际取值。标签使用实战如何用这套 Tag 跑 Selenium Grid精确锁定版本将 Edge 134.0.3124.95、EdgeDriver 134.0.3124.95、Grid 4.33.0构建于 20250606三者全部固定适合对可复现性要求极高的 CI 环境docker network create grid docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub \ selenium/hub:4.33.0-20250606 docker run -d --net grid -e SE_EVENT_BUS_HOSTselenium-hub --shm-size2g \ selenium/node-edge:134.0.3124.95-edgedriver-134.0.3124.95-grid-4.33.0-20250606按浏览器大版本追踪只固定 Edge 主版本134.0自动跟随该系列的补丁更新适合日常开发环境docker run -d --net grid -e SE_EVENT_BUS_HOSTselenium-hub --shm-size2g \ selenium/node-edge:134.0独立部署Standalone不使用 Hub/Node 架构、单容器承载整套 Grid 时docker run -d -p 4444:4444 --shm-size2g \ selenium/standalone-edge:134.0.3124.95-edgedriver-134.0.3124.95-20250606标签结构的完整说明可参考 docs/docker-hub/node-edge.md其中给出的通式为selenium/node-edge-browserVersion-browserDriverVersion-GridVersion-YYYYMMDD及其全部排列组合。完整 Grid含 Hub、Distributor、Router、Sessions、SessionQueue、EventBus、Nodes的编排示例见 docker-compose-v3-full-grid.yml。使用要点运行任何包含浏览器的容器都建议加上--shm-size2g避免浏览器崩溃。标签中-grid-段明确对应 Selenium Grid Server 版本Node 与 Hub 的 Grid 版本应保持一致。可选通过 VNC 查看容器内浏览器运行情况http://localhost:7900/?autoconnect1resizescalepasswordsecret。短版本标签如134.0不携带构建日期随仓库后续发布自动指向该大版本的最新构建需要完全固定的测试环境请使用含-grid-与日期的最完整标签。结语一份看似简单的发布日志背后是 docker-selenium 精心设计的版本标签体系真实版本从镜像产物中探测、长短版本双轨并行、日期与网格版本双重约束、Node/Standalone 双镜像同步。理解这套机制你既能精确锁定 Edge 134.0.3124.95 与 Grid 4.33.0 的组合用于生产级回归也能用134.0这类短标签实现自动化环境对浏览器大版本的持续跟随——这正是大规模浏览器自动化项目中版本可控性与升级便利性的平衡点。赞分享测试后端云原生容器编排可观测性【免费下载链接】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.32.0 发布记录解读Edge 134 浏览器镜像的版本解析与多级 Tag 体系docker selenium 4.32.0 发布记录解读Edge 134 浏览器镜像的版本解析与多级 Tag 体系 本文导读 本篇基于 docker se测试后端云原生容器编排可观测性Selenium Grid 浏览器镜像标签体系全解析从 docker-selenium 的 Edge 118 发布日志看懂 tag_and_push_browser_images.shSelenium Grid 浏览器镜像标签体系全解析从 docker selenium 的 Edge 118 发布日志看懂 tag_and_push_brow测试后端云原生容器编排可观测性docker-selenium 4.30.0 Edge 129 镜像标签体系详解从 tag_and_push_browser_images.sh 看浏览器镜像发布全流程docker selenium 4.30.0 Edge 129 镜像标签体系详解从 tag_and_push_browser_images.sh 看浏览器镜像测试后端云原生容器编排可观测性上一篇Hermes WebUI构建智能AI工作流自动化平台的终极指南下一篇3个高级技巧让WinMerge文件夹比对效率提升300%创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

GhostTrack 零门槛指南:IP 归属地、手机号、用户名一次查清

GhostTrack 零门槛指南:IP 归属地、手机号、用户名一次查清

GhostTrack 零门槛指南:IP 归属地、手机号、用户名一次查清 【免费下载链接】GhostTrack Useful tool to track location or mobile number 项目地址: https://gitcode.com/GitHub_Trending/gh/GhostTrack 如果你在服务器日志里盯到一个陌生 IP,不…

2026/10/9 1:42:10 阅读更多 →
抖音视频批量下载完整实战:DouK-Downloader 免费上手指南

抖音视频批量下载完整实战:DouK-Downloader 免费上手指南

抖音视频批量下载完整实战:DouK-Downloader 免费上手指南 【免费下载链接】TikTokDownloader 抖音 / TikTok 平台作品下载/数据采集工具 项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader 下课铃响前,你想把老师投屏讲解的教程…

2026/10/9 1:42:09 阅读更多 →
Java面向对象(OOP)核心知识详解

Java面向对象(OOP)核心知识详解

文章目录前言一、面向对象基础核心概念1.1 类与对象:面向对象的基石类与对象代码示例1.2 成员变量与局部变量1.3 构造方法1.4 对象的常规使用与私有成员访问(含反射)1.4.1 常规方式:new创建对象 规范访问成员1.4.2 反射机制&…

2026/10/9 1:42:09 阅读更多 →

最新新闻

OKL4微内核源码深度拆解:从IPC到用户态驱动设计

OKL4微内核源码深度拆解:从IPC到用户态驱动设计

简介:OKL4 1.4.1.1 是微内核领域早期颇具代表性的发行版,适合操作系统课程学习者、嵌入式系统开发者以及想深入理解内核机理的工程师。资源以 tar.gz 压缩格式打包,整体约 58.71MB,解开后即可按目录查看完整源码结构。目前已有 94…

2026/10/9 6:01:59 阅读更多 →
Fabric超级账本构建企业级资产可信链:登记、流转、防伪、溯源一体化

Fabric超级账本构建企业级资产可信链:登记、流转、防伪、溯源一体化

简介:这是一套面向区块链开发工程师与企业级应用实践者的开源解决方案,基于Hyperledger Fabric 1.0构建,聚焦企业资产管理、交易、防伪与溯源四大核心场景,提供从底层链码到前后端一体化的完整落地参考。资源共2000个文件&#xf…

2026/10/9 6:01:59 阅读更多 →
SSM博物馆售票系统开发实战:从数据库设计到并发防超卖全解析

SSM博物馆售票系统开发实战:从数据库设计到并发防超卖全解析

做毕业设计那会儿,我抽到的题目是一个JavaWeb方向的经典项目——博物馆售票管理系统。拿到题目的第一反应是“这有什么难的”,真正动手才发现,光是一个在线选票和库存扣减的逻辑,就能让新手纠结一整天。如果你也正在做类似的SSM项…

2026/10/9 6:01:59 阅读更多 →
Claude Code接入GLM 5完整指南:环境配置与10个实战技巧

Claude Code接入GLM 5完整指南:环境配置与10个实战技巧

最近我把 GLM 5 接进了 Claude Code,直接在终端里用 Claude Code 的交互界面跑 GLM 5 的代码生成和推理。这套组合让我日常改 bug、读工程、写测试脚本的效率明显上了一个台阶,最关键的是 API 成本比默认方案可控不少。所以这篇就把整个安装配置过程从头…

2026/10/9 6:01:59 阅读更多 →
Flutter游戏迁移OpenHarmony:碰撞检测与游戏结束处理实战

Flutter游戏迁移OpenHarmony:碰撞检测与游戏结束处理实战

把一个小游戏从 Flutter 迁到 OpenHarmony 上跑通,最大的感受就是:Dart 层的逻辑基本不用动,但“碰撞检测”和“游戏结束处理”这两块,却需要重新从算法选型到工程落地都过一遍脑子。你可能会觉得,碰撞检测不就是算两个…

2026/10/9 6:01:59 阅读更多 →
从JDK到IDEA:Java与JavaScript开发环境搭建避坑指南

从JDK到IDEA:Java与JavaScript开发环境搭建避坑指南

刚带完一个新人,他抱着笔记本跑过来说环境装了三天还没跑起来。我一看,问题非常典型:JDK装了两个版本,Maven依赖一直在下载失败,npm在PowerShell底下直接报“禁止运行脚本”,IntelliJ IDEA里项目一片飘红。…

2026/10/9 6:00:58 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

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/8 15:26:32 阅读更多 →
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/8 15:26:40 阅读更多 →
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/8 10:10:36 阅读更多 →

月新闻

我发现了一个新思路:用 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/8 21:13:17 阅读更多 →
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/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练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/7 13:34:55 阅读更多 →