测试后端云原生容器编排可观测性【免费下载链接】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),仅供参考