尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
docker-selenium 4.30.0 的 Edge 122 镜像发布实录:从版本探测到多级标签矩阵的完整机制解析
测试后端云原生容器编排可观测性【免费下载链接】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.30.0/edge_122.md 为骨架完整解读一次 Edge 122.0.2365.92 浏览器镜像发布过程的真实输出日志并结合 tag_and_push_browser_images.sh、NodeEdge/Dockerfile、Makefile 等源码与配置剖析 docker-selenium 如何自动探测浏览器/驱动版本、生成 12 个多级标签并推送到镜像仓库。读完本文你将能理解 docker-selenium 的镜像标签命名约定掌握从发布日志反推版本组合、以及按标签精确锁定某次 Selenium Grid Edge 组合的方法。一、文档定位一份 Edge 镜像的发布运行实录edge_122.md位于CHANGELOG/archived/目录下是 docker-selenium 项目版本 × 浏览器矩阵档案体系中的一环。项目通过 CHANGELOG/README.md 维护一张覆盖 Chrome、Chrome for Testing、Edge、Firefox 的版本矩阵表每个 ✓ 链接指向对应 Grid 版本 浏览器版本组合的详细变更记录文件。例如矩阵中的 4.30.0 行、Edge 122 列即链接到本篇文章所依据的archived/4.30.0/edge_122.md。这些 changelog 文件的共同形态是直接收录发布时执行tag_and_push_browser_images.sh脚本的完整终端输出以代码块形式呈现其中包含触发发布的脚本调用命令与全部参数实际探测到的 Edge 浏览器版本、短版本号实际探测到的 EdgeDriver 版本、短版本号逐条生成的node-edge与standalone-edge镜像标签。因此这类文档既是一份可追溯的发布审计记录也是一份现成的标签字典——读者可以从任意一条标签反推出其中的浏览器版本、驱动版本、Grid 版本与构建日期从而精确选择需要拉取的镜像。本次发布的关键事实根据edge_122.md记录本次发布的核心参数为维度值Selenium Grid 版本4.30.0-20250323Edge 浏览器版本122.0.2365.92Edge 短版本122.0EdgeDriver 版本122.0.2365.92EdgeDriver 短版本122.0命名空间selenium是否推送falseRELEASE_OLD_VERSIONtrue其中短版本Short Version取主版本号的前两段即122.0。Edge 与 EdgeDriver 在此次发布中版本号完全一致均为 122.0.2365.92这与 Chromium 系浏览器驱动跟随浏览器版本的发布策略相符——在 NodeEdge/Dockerfile 中当未显式指定EDGE_DRIVER_VERSION时驱动版本会直接解析为浏览器自身的完整版本号。二、完整发布日志12 个镜像标签的逐条解读edge_122.md的核心内容是一条 21 行的脚本输出。为保证信息不缩水下面完整复述并逐条标注其语义。触发命令为./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true其中 7 个位置参数依次为VERSION4.30.0、BUILD_DATE20250323、NAMESPACEselenium、PUSH_IMAGEfalse、BROWSERedge、RELEASE_OLD_VERSIONtrue第 7 个参数PLATFORM省略使用脚本默认值linux/amd64。脚本随即回显Tagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium Selenium Grid version - 4.30.0-20250323 Edge version - 122.0.2365.92 Short Edge version - 122.0 EdgeDriver version - 122.0.2365.92 Short EdgeDriver version - 122.0标签 1–4完整版本 构建日期前四行是携带浏览器完整版本 驱动完整版本 构建日期的最全标签Node 与 Standalone 各两条Tagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.30.0-20250323 Tagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.30.0-20250323 Tagged selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-20250323 Tagged selenium/standalone-edge:122.0.2365.92-edgedriver-122.0.2365.92-20250323第 1、2 条为五元组标签Edge完整版-edgedriver-EdgeDriver完整版-grid-Grid版本-构建日期其中grid-4.30.0-20250323即TAG_VERSIONVERSION-BUILD_DATE这是信息最完整、最适合在 CI 中精确复现的标签第 3、4 条省略了grid-段仅保留浏览器、驱动与构建日期。标签 5–6浏览器完整版本 构建日期Tagged selenium/node-edge:122.0.2365.92-20250323 Tagged selenium/standalone-edge:122.0.2365.92-20250323这两条只锚定浏览器完整版本与构建日期不携带驱动信息——适用于不关心驱动具体版本、只锁定 Edge 版本与构建时刻的场景。标签 7–12短版本系列Tagged selenium/node-edge:122.0-edgedriver-122.0-grid-4.30.0-20250323 Tagged selenium/standalone-edge:122.0-edgedriver-122.0-grid-4.30.0-20250323 Tagged selenium/node-edge:122.0-edgedriver-122.0-20250323 Tagged selenium/standalone-edge:122.0-edgedriver-122.0-20250323 Tagged selenium/node-edge:122.0-20250323 Tagged selenium/standalone-edge:122.0-20250323后 6 条全部使用短版本122.0将122.0.2365.92压缩为主版本段。其结构完全对称于前 6 条短版-edgedriver-短版-grid-版本-日期、短版-edgedriver-短版-日期、短版-日期。短版本标签更易读、更适合日常手写代价是无法区分同一主版本线内的不同补丁版本。一个值得注意的细节为什么只有 12 条标签对照 tag_and_push_browser_images.sh 的 edge 分支第 151–192 行可以发现EDGE_TAGS数组定义了 6 个日期标签随后还有一个受RELEASE_OLD_VERSION控制的追加分支if [ ${RELEASE_OLD_VERSION} false ]; then EDGE_TAGS( ${EDGE_VERSION}-edgedriver-${EDGEDRIVER_VERSION} ${EDGE_VERSION} ${EDGE_SHORT_VERSION}-edgedriver-${EDGEDRIVER_SHORT_VERSION} ${EDGE_SHORT_VERSION} ) fi只有当RELEASE_OLD_VERSIONfalse时才会额外追加122.0.2365.92-edgedriver-122.0.2365.92、122.0.2365.92、122.0-edgedriver-122.0、122.0这 4 个不带日期的向后兼容标签每个标签对应 node 与 standalone 两条合计 8 条。而本次发布命令的第 6 个参数为true因此归档日志中恰好只有 6 × 2 12 条标签——这从侧面印证归档中的 4.30.0 属于旧版本发布项目刻意抑制了不带日期标签的生成避免与最新版本产生标签歧义。三、标签的生成原理源码级解读3.1 版本探测在容器内直接执行浏览器与驱动脚本的 edge 分支tag_and_push_browser_images.sh 第 151–161 行首先通过docker run在已构建的node-edge:4.30.0-20250323镜像内执行命令实时探测真实版本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})Edge 的版本号取microsoft-edge --version输出中的第 3 个字段EdgeDriver 的版本号取msedgedriver --version输出中的第 4 个字段如Microsoft Edge WebDriver 122.0.2365.92形式该探测发生在镜像构建完成之后因此标签中的版本号永远与镜像内二进制真实版本一致不会出现声明的版本与实际安装版本不符的问题。3.2 短版本推导short_version 函数function short_version() { local __long_version$1 local __version_split(${__long_version//./ }) echo ${__version_split[0]}.${__version_split[1]} }该函数tag_and_push_browser_images.sh 第 53–57 行按.切分完整版本号并取前两段将122.0.2365.92压缩为122.0。这正是日志中 Short Edge version - 122.0 与 Short EdgeDriver version - 122.0 两行的来源。3.3 标签生成EDGE_TAGS 数组与 retag()EDGE_TAGS数组第 163–187 行按固定顺序拼装 6 个标签模板随后循环调用retag函数第 189–192 行for edge_tag in ${EDGE_TAGS[]}; do retag node-edge ${edge_tag} retag standalone-edge ${edge_tag} doneretag()第 31–51 行的实际行为取决于环境变量默认路径docker tag本地镜像若PUSH_IMAGEtrue则随后docker pushPROMOTE_TAGStrue时改为docker buildx imagetools create在 registry 与 registry 之间直接复制 manifest不经过本地镜像存储保持多架构 manifest 完整并可通过PROMOTE_GHCR_NAMESPACE同时镜像到 GHCR。本次日志中的Tagged ...输出即来自retag()内的echo Tagged ${NAMESPACE}/${__image}:${__tag}。四、标签命名约定如何在 12 个标签中做选择docs/docker-hub/node-edge.md 与 docs/docker-hub/standalone-edge.md 对标签结构做了正式定义。Node 模式的基础结构为selenium/node-edge-Major.Minor.Patch-YYYYMMDD携带浏览器与驱动版本的完整结构为selenium/node-edge-browserVersion-browserDriver-browserDriverVersion-Major.Minor.Patch-YYYYMMDDStandalone 模式结构完全一致仅镜像名不同。以Edge 122.0、EdgeDriver 122.0、Grid 4.30.0、发布日 20250323为例可选标签全貌如下selenium/node-edge:4.30.0-20250323 selenium/node-edge:122.0-20250323 selenium/node-edge:122.0-edgedriver-122.0-20250323 selenium/node-edge:122.0-edgedriver-122.0-grid-4.30.0-20250323 selenium/node-edge:122.0.2365.92-20250323 selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-20250323 selenium/node-edge:122.0.2365.92-edgedriver-122.0.2365.92-grid-4.30.0-20250323standalone-edge 同理。选择建议CI / 生产环境使用信息最全的完整版-edgedriver-完整版-grid-版本-日期标签保证构建可复现日常调试使用短版或短版-日期标签简洁易读锁定构建时刻任何携带-20250323后缀的标签都可精确对应本次归档发布。官方文档同时给出两条重要运行提醒执行docker run时建议加--shm-size2g使用宿主机共享内存虽然示例多用latest但官方推荐使用完整标签以固定浏览器与 Grid 版本。五、从发布日志回到构建层NodeEdge 镜像如何装配 Edge 122归档日志中探测出的122.0.2365.92并非凭空而来其源头在 NodeEdge/Dockerfile。该 Dockerfile 以node-base为基础镜像核心装配过程如下添加 Microsoft 软件源并安装 Edge第 16–34 行默认EDGE_VERSIONmicrosoft-edge-stable支持形如microsoft-edge-stable122.0.2365.92-1的版本锁定写法。由于 Microsoft 会清理旧版本 debDockerfile 针对版本锁定场景从 per-version 归档站点EDGE_ARCHIVE_SITE拉取对应的.deb安装镜像了 Chrome 侧的同类策略未锁定时则直接从 stable 仓库安装最新版。包装 Edge 启动脚本第 39–40 行将 wrap_edge_binary 复制为/opt/bin/wrap_edge_binary并执行。包装脚本为/usr/bin/microsoft-edge注入--no-sandbox支持--lang参数映射为LANGUAGE环境变量并收集所有SE_BROWSER_ARGS_前缀的环境变量合并为启动参数。安装 EdgeDriver第 51–68 行通过EDGE_DRIVER_VERSION构建参数控制未指定时先按 Edge 主版本查询LATEST_RELEASE_major_LINUX指针若 Microsoft 已清理该指针则回退为浏览器完整版本号并在失败时从归档站点兜底。这与本次日志中驱动版本与浏览器版本一致的现象完全吻合。生成浏览器信息第 82–85 行在/opt/selenium/browsers/edge/下写入nameMicrosoftEdge、version来自microsoft-edge --version与binary_locationJSON默认/usr/bin/microsoft-edge可用SE_BROWSER_BINARY_LOCATION环境变量覆盖参见 ENV_VARIABLES.md。这些信息用于GENERATE_CONFIGtrue时自动生成 Node 的 driver 配置。预设环境变量第 87–88 行SE_OTEL_SERVICE_NAMEselenium-node-edge与SE_NODE_ENABLE_MANAGED_DOWNLOADStrue。因此edge_122.md中的Edge version - 122.0.2365.92这一行本质上是对上述构建流程产物的一次运行时校验回显。六、构建与发布流水线Makefile 中的 edge 链路在 Makefile 中Edge 镜像的构建与打标分布在若干目标中edge: node_base edge_only第 582 行edge_only限定linux/amd64平台因为 Microsoft Edge 官方仅提供 amd64 构建第 571–580 行这也是归档日志命令中默认PLATFORMlinux/amd64的原因edge_dev/edge_beta第 584–588 行通过--build-arg EDGE_VERSIONmicrosoft-edge-dev|beta构建 dev / beta 通道镜像standalone_edge: edge standalone_edge_only第 666 行在Standalone/目录基于node-edge叠加出独立节点镜像edge_upgrade_version第 772–777 行构建后通过三条docker run分别校验 Selenium Server、microsoft-edge、msedgedriver的版本与归档日志中的探测逻辑同源tag_and_push_edge_images第 792–793 行即调用tag_and_push_browser_images.sh生成本次归档日志的正式入口其余浏览器chrome、chromium、firefox、chrome-for-testing共用同一脚本的不同分支。版本矩阵文件本身由CHANGELOG/generate-matrix-readme.py在发布流程中生成对应 Makefile 的update_browser_versions_matrix目标第 400–405 行保证每个 Grid 版本 × 浏览器版本的归档文档与矩阵表同步更新。七、归档文档的实用价值与使用边界从 CHANGELOG/README.md 的说明可知该矩阵与归档体系的设计动机是在持续提供最新 Selenium Grid 核心能力的同时允许用户因跨浏览器测试或特定浏览器版本的兼容性约束而固定使用某个浏览器版本。用户只需在矩阵中找到对应的 ✓即可定位到像edge_122.md这样的发布记录再按记录中的标签拉取镜像开始测试。同时 README 也明确提醒项目并未对每一种 Grid 版本 × 浏览器版本组合做全量功能验证用户需要依据自身测试需求评估并做出选择。这一点也适用于本文所述的 4.30.0 Edge 122 组合——该组合已被归档archived属于旧 Grid 版本 旧浏览器版本的历史发布选择时应结合实际运行环境验证。最后需要注意本归档文档只覆盖本次发布打出的 12 条标签RELEASE_OLD_VERSIONtrue抑制了不带日期的旧版本标签。若需要不带日期的122.0或122.0.2365.92等标签应查看矩阵中其他 Grid 版本对应的 Edge 122 变更记录如 CHANGELOG/archived/4.29.0/edge_122.md、CHANGELOG/archived/4.28.1/edge_122.md或直接依据 docs/docker-hub/node-edge.md 的标签约定通过完整标签精确固定所需的浏览器、驱动、Grid 版本与构建日期组合。赞分享测试后端云原生容器编排可观测性【免费下载链接】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.48.0 发布记录解析Edge 115 镜像的版本矩阵与多标签打标机制docker selenium 4.48.0 发布记录解析Edge 115 镜像的版本矩阵与多标签打标机制 本篇技术指南以 CHANGELOG/4.48.0/测试后端云原生容器编排可观测性docker-selenium 4.28.1 发布记录解读Edge 125 镜像的版本探测与标签矩阵生成机制docker selenium 4.28.1 发布记录解读Edge 125 镜像的版本探测与标签矩阵生成机制 本文基于 docker selenium 仓库测试后端云原生容器编排可观测性docker-selenium Edge 115 镜像发布标签全解析从 tag_and_push_browser_images.sh 到 Selenium Grid 4.29.0 版本矩阵docker selenium Edge 115 镜像发布标签全解析从 tag_and_push_browser_images.sh 到 Selenium G测试后端云原生容器编排可观测性上一篇解决Flutter TextTheme.bodyText2兼容性问题的实战指南从UI错乱到完美适配下一篇Create React App 的 npm start 不检测文件改动、热更新失效怎么排查创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

攻击溯源与应急响应系统设计:从日志分析到处置闭环实战指南

攻击溯源与应急响应系统设计:从日志分析到处置闭环实战指南

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

📅 2026/10/6 12:05:43
双向链表与循环链表实战:多级菜单回退与轮询调度

双向链表与循环链表实战:多级菜单回退与轮询调度

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

📅 2026/10/6 12:05:43
LoRa自组网设备原理:RS485、net_id与IAP协同机制深度解析

LoRa自组网设备原理:RS485、net_id与IAP协同机制深度解析

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

📅 2026/10/6 12:05:43
MORE NEWS

更多资讯

📰

数字人直播频繁弹窗网络状态不佳?从网络诊断到推流优化全排查

最近不少使用安东星做数字人直播的朋友反馈同一个问题:打开客户端、准备开播或者推流的过程中,页面弹出“网络状态不佳”的提示,然后直播间画面卡住、素材加载失败、数字人无法正常驱动。这个提示本身没有给出详细的错误码,也没有…

📰

WinForms并发任务最佳实践:Parallel.For+SemaphoreSlim+Timer组合

做WinForms开发的人,迟早会碰到这么一类需求:界面上点一个按钮,后台要处理大批量数据,界面不能卡死,进度还得实时可见。我以前接手过一个导入工具,数据量小的时候一切正常,量一大就出现两个问题…

📰

深度实测:如何将论文AIGC检测率从99.8%降至6.7%

2026年3月,我把自己熬了四个多月的论文初稿第一次送进AIGC检测系统,页面加载完的那一刻我盯着屏幕上的数字愣了很久:99.8%。也就是说,在系统眼里,这篇论文几乎没有一个句子像是人写的。接下来的两周,我一边…

📰

产线级实时SPC系统设计与实现:从Modbus采集到控制图告警

简介:本资源是一套面向高校自动化、工业工程及质量管理专业学生的毕业设计项目,聚焦于统计过程控制(SPC)在制造业质量监控中的落地实践,旨在帮助学习者构建具备数据采集、实时分析、可视化预警能力的在线质量分析系统。…

📰

U盘系统盘制作全指南:镜像选择、工具对比与引导兼容

做系统盘这件事,听起来好像只属于电脑修理店和装机老手,但你真碰到一次电脑无法启动,或者 C 盘已经爆红到只剩几百兆,就知道手里有一张靠谱的系统安装盘有多重要。这篇文章想聊的,就是怎么从零开始把 U 盘制作成能装系…

📰

逻辑回归鸢尾花分类实战:训练、评估与避坑指南

简介:这是一份基于Python语言实现逻辑回归鸢尾花分类的机器学习大作业资源,面向期末大作业、课程设计或初学者入门实践场景。资源包含带详细注释的完整项目源码、实验报告及文档说明,覆盖数据加载、特征处理、模型训练、分类评估等关键环节&a…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬