资讯详情

docker-selenium 4.31.0 发布:Edge 123 镜像多级标签体系与 tag_and_push_browser_images 脚本全解析

📅 2026/10/7 2:42:20 | 华诺云谱 👁 阅读
docker-selenium 4.31.0 发布:Edge 123 镜像多级标签体系与 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 仓库发布记录 CHANGELOG/archived/4.31.0/edge_123.md 为主线完整还原 Selenium Grid 4.31.0 发行版中 Edge 123 浏览器镜像selenium/node-edge与selenium/standalone-edge的标签生成过程。你将掌握这些看似冗长的镜像标签每一段到底代表什么、发布脚本 tag_and_push_browser_images.sh 是如何通过版本探测自动拼出全部标签的以及在实际自动化测试中如何按浏览器版本、Driver 版本与 Grid 版本精准选取镜像。发布背景一次 Edge 123 的镜像打标实录该发布记录对应 Selenium Grid 4.31.0、构建日期 20250414 的发行周期。当发布流程执行 Edge 分支的打标命令后脚本输出的日志完整记录了本次 Edge 镜像的版本探测结果Selenium Grid version - 4.31.0-20250414 Edge version - 123.0.2420.97 Short Edge version - 123.0 EdgeDriver version - 123.0.2420.97 Short EdgeDriver version - 123.0也就是说本次发行中 Microsoft Edge 与 EdgeDrivermsedgedriver版本完全一致均为123.0.2420.97Grid 版本为4.31.0-20250414。这一浏览器与驱动版本同号的现象并非偶然——Edge 的版本策略与 Chrome 保持一致驱动版本跟随浏览器版本发布脚本在探测到 Edge 版本后即可确定 EdgeDriver 版本。完整发布日志为 node-edge 与 standalone-edge 生成的 20 个标签以下是该记录文档的原始命令与输出命令中的第 6 个参数true表示RELEASE_OLD_VERSIONtrue即本次发行将旧版本镜像也一并重新打标见下文脚本解析./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true脚本依次为node-edge和standalone-edge两个镜像打上了以下 20 个标签每个镜像 10 个Tagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.31.0-20250414 Tagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.31.0-20250414 Tagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-20250414 Tagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-20250414 Tagged selenium/node-edge:123.0.2420.97-20250414 Tagged selenium/standalone-edge:123.0.2420.97-20250414 Tagged selenium/node-edge:123.0-edgedriver-123.0-grid-4.31.0-20250414 Tagged selenium/standalone-edge:123.0-edgedriver-123.0-grid-4.31.0-20250414 Tagged selenium/node-edge:123.0-edgedriver-123.0-20250414 Tagged selenium/standalone-edge:123.0-edgedriver-123.0-20250414 Tagged selenium/node-edge:123.0-20250414 Tagged selenium/standalone-edge:123.0-20250414 Tagged selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-20250414 Tagged selenium/standalone-edge:123.0.2420.97-edgedriver-123.0.2420.97-20250414 Tagged selenium/node-edge:123.0.2420.97-20250414 Tagged selenium/standalone-edge:123.0.2420.97-20250414 Tagged selenium/node-edge:123.0-20250414 Tagged selenium/standalone-edge:123.0-20250414 Tagged selenium/node-edge:123.0-edgedriver-123.0-20250414 Tagged selenium/standalone-edge:123.0-edgedriver-123.0-20250414注意这份归档日志只截取到-20250414结尾的部分标签对应脚本中EDGE_TAGS数组的前六项加上RELEASE_OLD_VERSIONtrue时追加的-20250414变体而完整发行周期内同一脚本还会生成不带构建日期的标签如123.0.2420.97、123.0、123.0-edgedriver-123.0等。相同版本的镜像会在 Dockerfile 中同时被构建为node-edge与standalone-edge两种形态见 Makefile 的edge_upgrade_version目标先构建 node 镜像再以--build-arg BASEnode-edge从 node 镜像构建 standalone 镜像因此每条标签都会在这两个镜像上各打一遍。标签语义拆解从三元组到缩写 组合的多级定位以selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.31.0-20250414为例标签由四个信息段组成信息段值含义浏览器版本123.0.2420.97Microsoft Edge 完整版本号Major.Minor.Patch驱动信息edgedriver-123.0.2420.97EdgeDriver 完整版本号以edgedriver-前缀标识Grid 信息grid-4.31.0-20250414Selenium Grid Server 版本 构建日期日期段20250414发行构建日期YYYYMMDD发布脚本对完整版本号与短版本号分别打标123.0.2420.97是完整三元组而短版本123.0由脚本中的short_version函数从完整版本号截取前两段生成见 tag_and_push_browser_images.shfunction short_version() { local __long_version$1 local __version_split(${__long_version//./ }) echo ${__version_split[0]}.${__version_split[1]} }这种长/短双版本设计的意义在于短版本标签123.0随该浏览器主版本内的所有补丁版本自动更新用户可以用它锁定大版本、自动跟随小更新完整版本标签123.0.2420.97则用于完全锁定某个具体构建保证可复现性。脚本原理参数、Edge 分支与版本探测的完整调用链发布记录中命令行./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false edge true的 7 个位置参数对应脚本头部定义见 tag_and_push_browser_images.sh位置参数本次值说明1VERSION4.31.0Selenium Grid 版本号2BUILD_DATE20250414构建日期与 VERSION 组成TAG_VERSION4.31.0-202504143NAMESPACEselenium镜像命名空间默认值为selenium4PUSH_IMAGEfalse打标后是否执行docker push本次仅本地打标5BROWSERedge浏览器类型决定走哪个分支6RELEASE_OLD_VERSIONtrue是否同时为旧版本无构建日期标签打标7PLATFORM缺省构建平台默认linux/amd64进入edge分支后脚本通过临时运行已构建好的 node 镜像来探测真实版本见 tag_and_push_browser_images.shEDGE_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 123.0.2420.97awk {print $3}取第三列即得到123.0.2420.97msedgedriver --version输出形如Microsoft Edge WebDriver 123.0.2420.97 ...awk {print $4}取第四列得到驱动版本号。随后脚本组装EDGE_TAGS数组见 tag_and_push_browser_images.sh六组基础标签为完整Edge版本-edgedriver-完整驱动版本-grid-完整Grid版本、完整Edge版本-edgedriver-完整驱动版本-日期、完整Edge版本-日期以及三组对应的短版本变体。当RELEASE_OLD_VERSIONfalse时还会追加不带日期段的四个标签如123.0-edgedriver-123.0、123.0。对数组中每个标签脚本调用retag函数见 tag_and_push_browser_images.sh在node-edge与standalone-edge上执行打标若PUSH_IMAGEtrue则在打标后追加docker push。脚本还支持PROMOTE_TAGStrue的发布推广模式——此时源镜像已在镜像仓库中脚本改用docker buildx imagetools create在 registry 之间直接复制 manifest避免本地只拉回单一架构导致多架构标签退化并可借助PROMOTE_GHCR_NAMESPACE同步镜像到 GHCR。镜像内容支撑NodeEdge 的 Edge 与 EdgeDriver 是如何装进镜像的标签所指向的selenium/node-edge镜像由 NodeEdge/Dockerfile 构建。该 Dockerfile 以node-base为基础镜像核心逻辑分三步安装 Microsoft EdgeNodeEdge/Dockerfile默认EDGE_VERSIONmicrosoft-edge-stable从packages.microsoft.com的 Edge 仓库安装稳定版若指定microsoft-edge-stable版本号形式则因微软会清理旧版本仓库改为从EDGE_ARCHIVE_SITEhttps://github.com/NDViet/microsoft-edge-stable/releases/download拉取对应版本的.deb归档并用--allow-downgrades安装封装 Edge 启动脚本NodeEdge/Dockerfile NodeEdge/wrap_edge_binary将/usr/bin/microsoft-edge重命名为microsoft-edge-base再生成一个同名包装脚本负责设置umask 002保证文件权限可被同容器多用户读写、把--langxx参数转换为LANGUAGE环境变量Debian/Ubuntu 对--lang支持不佳、收集所有SE_BROWSER_ARGS_前缀的环境变量合并为SE_BROWSER_ARGS最终以exec -a $0 ... --no-sandbox方式启动真实浏览器二进制安装 msedgedriverNodeEdge/Dockerfile默认从https://msedgedriver.microsoft.com/LATEST_RELEASE_主版本号_LINUX获取与浏览器主版本匹配的最新驱动版本若微软已移除该指针文件则回退为使用浏览器精确版本号并从msedgedriver.microsoft.com或归档站点下载edgedriver_linux64.zip/edgedriver_linux-aarch64.zip解压后以msedgedriver-$EDGE_DRIVER_VERSION命名并软链到/usr/bin/msedgedriver。镜像还内置了浏览器信息探测与边缘清理机制构建时把 Edge 名称、版本写入/opt/selenium/browsers/edge/目录NodeEdge/Dockerfile供 Node 的GENERATE_CONFIG配置逻辑自动生成 Node 驱动配置edge-cleanup.sh与edge-cleanup.conf通过 supervisord 在容器生命周期内清理过期的 Edge 用户数据目录。此外镜像默认设置SE_NODE_ENABLE_MANAGED_DOWNLOADStrue自动管理会话下载文件与SE_OTEL_SERVICE_NAMEselenium-node-edgeOpenTelemetry 服务名见 ENV_VARIABLES.md这些环境变量同样适用于 Edge 节点镜像。实战如何根据标签运行 Edge 节点与 Standalone 镜像以本文的4.31.0-20250414发行周期为例你可以通过标签精确锁定 Edge 123 环境。先创建 Docker 网络并启动 Hub再注册 Edge 节点参考 docs/docker-hub/node-edge.mddocker network create grid docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.31.0-20250414 # 使用短版本标签Edge 123 主版本内自动跟随补丁更新 docker run -d --net grid -e SE_EVENT_BUS_HOSTselenium-hub \ --shm-size2g \ selenium/node-edge:123.0-20250414 # 使用完整版本标签完全锁定 Edge 123.0.2420.97 docker run -d --net grid -e SE_EVENT_BUS_HOSTselenium-hub \ --shm-size2g \ selenium/node-edge:123.0.2420.97-edgedriver-123.0.2420.97-grid-4.31.0-20250414随后将 WebDriver 测试指向http://localhost:4444即可。运行浏览器容器时务必带上--shm-size2g以使用宿主共享内存避免浏览器崩溃。若需调试可访问http://localhost:7900/?autoconnect1resizescalepasswordsecret查看容器内桌面。若你不需要独立 Hub/Node 架构可直接使用单机形态的selenium/standalone-edge:123.0.2420.97-grid-4.31.0-20250414它内置完整 Grid 服务一条命令即可拉起一个可运行测试的 Edge 环境docker run -d -p 4444:4444 --shm-size2g \ selenium/standalone-edge:123.0.2420.97-grid-4.31.0-20250414如果需要在标准镜像基础上自定义浏览器二进制路径可参考 ENV_VARIABLES.md 中SE_BROWSER_BINARY_LOCATION环境变量当GENERATE_CONFIGtrue时Node 会将该路径写入驱动配置默认值为/usr/bin/microsoft-edge例如SE_BROWSER_BINARY_LOCATION/opt/microsoft-edge。与发布流程的衔接Makefile 目标与验证命令这份标签日志是发行流水线的产出物之一。仓库 Makefile 将浏览器镜像打标拆成了按浏览器分组的 make 目标tag_and_push_chrome_images、tag_and_push_edge_images等分别调用tag_and_push_browser_images.sh并传入对应浏览器名而tag_and_push_browser_images聚合全部浏览器目标。构建与验证路径则由edge_upgrade_version目标Makefile体现先构建node-edge再基于它构建standalone-edge随后依次运行selenium-server.jar info --version、microsoft-edge --version、msedgedriver --version验证镜像内 Grid、浏览器与驱动三者版本与脚本日志中的版本探测行一一对应。也就是说CHANGELOG/archived/4.31.0/edge_123.md 中这 20 行 Tagged 输出既是版本一致性的验收记录也是这套探测真实版本 → 组装长短标签 → 双镜像打标 → 按需推送自动化流程的直接证据。读者可对照同目录下 edge_122.mdEdge 122.0.2365.92查看相邻发行周期的标签结构二者完全同构印证了该发布机制的稳定性与可重复性。赞分享测试后端云原生容器编排可观测性【免费下载链接】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点击查看免费下载相关推荐Selenium Grid Edge 115 镜像发布与标签体系全解析从 tag_and_push_browser_images 看 docker-selenium 的版本管理Selenium Grid Edge 115 镜像发布与标签体系全解析从 tag_and_push_browser_images 看 docker selen测试后端云原生容器编排可观测性docker-selenium 4.30.0 发布记录Edge 123 版本镜像的标签体系与发布流程解析docker selenium 4.30.0 发布记录Edge 123 版本镜像的标签体系与发布流程解析 本篇指南基于 docker selenium 仓库归测试后端云原生容器编排可观测性Selenium Grid 4.31.0 Chrome 130 镜像标签全解析tag_and_push_browser_images 发布流程实战指南Selenium Grid 4.31.0 Chrome 130 镜像标签全解析tag_and_push_browser_images 发布流程实战指南 Sel测试后端云原生容器编排可观测性上一篇wheel-picker-cj API 参考五大选择器 Model 类配置与取值方法完全速查表下一篇如何修复MobaXterm-Chinese的显示难题深浅主题切换与高分屏错位一步解决创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑