
测试后端云原生容器编排可观测性【免费下载链接】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点击查看免费下载本次发布记录CHANGELOG/archived/4.29.0/edge_129.md完整记录了 Selenium Grid 4.29.0-20250303 版本中 Edge 129 系列镜像的构建与打标输出。本文以该记录为核心骨架结合仓库中的发布脚本、Dockerfile 与运行时配置深入解析 12 个镜像标签的生成逻辑、Edge 与 msedgedriver 的版本探测方式以及node-edge/standalone-edge镜像在容器内的安装与清理机制帮助读者掌握这套镜像的标签选择与版本追踪方法。版本快照一次发布的完整档案edge_129.md本质上是一次镜像发布操作的完整执行日志它浓缩了三个关键信息维度发布标识Selenium Grid 版本为4.29.0-20250303其中20250303是构建日期浏览器版本Microsoft Edge129.0.2792.89简称129.0驱动版本EdgeDrivermsedgedriver129.0.2792.98简称129.0。同一版本家族的其他浏览器也有对应记录例如 chrome_129.md 记录的是 Chrome129.0.6668.100edge_128.md 则对应 Edge128.0.2739.79。这些 changelog 文件共同构成一个可回溯的版本矩阵任何一次发布都能精确还原Grid 版本 × 浏览器版本 × 驱动版本 × 构建日期四个维度的组合。触发发布的核心命令日志的第一行即给出了触发本次发布的命令./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false edge true对应 tag_and_push_browser_images.sh 中的参数定义脚本第 1-9 行七个参数的含义如下参数位置值变量名含义14.29.0VERSIONSelenium Grid 版本号220250303BUILD_DATE构建日期YYYYMMDD3seleniumNAMESPACE镜像命名空间/仓库前缀4falsePUSH_IMAGE是否docker push默认 false5edgeBROWSER目标浏览器类型6trueRELEASE_OLD_VERSION是否为旧版本补发标签默认 false7未传PLATFORM目标平台默认linux/amd64脚本还有两个环境变量开关PROMOTE_TAGS发布流程复用已测试镜像时用 registry-to-registry 方式补标签与PROMOTE_GHCR_NAMESPACE同时镜像到 GHCR具体逻辑见脚本第 31-51 行的retag()函数。本次命令中PUSH_IMAGEfalse意味着只执行本地docker tag而不推送这也是 changelog 输出中只出现Tagged ...而没有Pushed ...的原因。12 个标签一套完整的版本标识体系本次发布共生成 12 个标签均匀分配给selenium/node-edge与selenium/standalone-edge两个镜像。这些标签不是随意命名的而是由 tag_and_push_browser_images.sh 第 163-187 行的edge)分支按固定模板拼装而成。基础模板共 6 组对应脚本第 163-175 行模板本次生成的具体标签信息量Edge-edgedriver-Driver-grid-版本-日期129.0.2792.89-edgedriver-129.0.2792.98-grid-4.29.0-20250303全量信息Edge-edgedriver-Driver-日期129.0.2792.89-edgedriver-129.0.2792.98-20250303浏览器驱动日期Edge-日期129.0.2792.89-20250303浏览器日期短版本-edgedriver-短驱动-grid-版本-日期129.0-edgedriver-129.0-grid-4.29.0-20250303简写全量短版本-edgedriver-短驱动-日期129.0-edgedriver-129.0-20250303简写浏览器驱动日期短版本-日期129.0-20250303简写浏览器日期由于本次命令传入了RELEASE_OLD_VERSIONtrue第 6 个参数脚本第 176-187 行追加的四组不带构建日期的标签不会生成——这解释了为什么本次输出里没有selenium/node-edge:129.0这样的长期标签它们保留给该版本首次发布时使用而本次属于补发/归档性质的操作。短版本由脚本第 53-57 行的short_version()函数计算逻辑是取点分版本号的前两段129.0.2792.89→129.0用于提供更稳定的引用锚点——浏览器与驱动的次版本升级不会破坏这类标签。版本探测如何读出真实的 Edge 版本打标的前提是准确探测容器内实际安装的浏览器与驱动版本。edge)分支脚本第 151-161 行采用运行镜像 解析命令输出的方式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的版本号在第 3 个字段而msedgedriver --version的版本号在第 4 个字段。这从侧面印证了 Edge 与 EdgeDriver 的版本号不必保持一致——本次发布中浏览器为129.0.2792.89、驱动为129.0.2792.98二者差异恰好体现了这套各自探测、独立打标设计的必要性绝不应当硬编码版本号。镜像内部的 Edge 安装原理理解了标签体系后再看node-edge镜像内部如何安装这些版本。核心构建逻辑在 NodeEdge/Dockerfile浏览器安装第 16-34 行默认从微软官方 apt 源安装microsoft-edge-stable。针对微软会清理旧版本的问题Dockerfile 支持通过EDGE_VERSION构建参数指定精确版本此时会从归档站点NDViet/microsoft-edge-stable的 releases下载对应的.deb包并用--allow-downgrades安装避免旧版本在官方源中已不可用。驱动安装第 51-68 行默认逻辑是先探测已安装 Edge 的主版本号再向msedgedriver.microsoft.com/LATEST_RELEASE_主版本_LINUX请求最新驱动版本若该版本已被微软清理导致请求失败则回退使用与浏览器完全一致的版本号。下载时按dpkg --print-architecture区分linux64与linux-aarch64的驱动包解压到/opt/selenium并以版本号命名后软链到/usr/bin/msedgedriver。浏览器信息登记第 82-85 行构建末尾将浏览器名称、版本与二进制路径写入/opt/selenium/browsers/edge/目录其中binary_location文件的内容为{ms:edgeOptions: {binary: ${SE_BROWSER_BINARY_LOCATION:-/usr/bin/microsoft-edge}}}即 Node 的GENERATE_CONFIG逻辑会依据此处信息生成节点配置且二进制路径可通过SE_BROWSER_BINARY_LOCATION环境变量覆盖详见 ENV_VARIABLES.md 第 122 行便于在官方镜像基础上自定义浏览器安装路径。运行时包装器与进程清理镜像内还包含两个与 Edge 运行稳定性直接相关的机制启动包装器NodeEdge/wrap_edge_binary将/usr/bin/microsoft-edge重命名为-base后在原始路径生成包装脚本。它负责三件事固定umask 002保证容器内多用户共享文件权限将--lang命令行参数转换为LANGUAGE环境变量Debian/Ubuntu 不尊重--lang收集所有SE_BROWSER_ARGS_前缀的环境变量并拼入启动参数最终以--no-sandbox方式启动真实二进制。这些细节使容器内的 Edge 在 rootless、多会话场景下能稳定运行。残留清理守护进程NodeEdge/edge-cleanup.sh 与 NodeEdge/edge-cleanup.conf在 supervisord 中以 priority 20 启动循环任务gated 由SE_ENABLE_BROWSER_LEFTOVERS_CLEANUP控制按 ENV_VARIABLES.md 第 84-86 行的默认值执行SE_BROWSER_LEFTOVERS_PROCESSES_SECS默认 7200杀掉运行超过该时长的僵尸msedge/msedge进程SE_BROWSER_LEFTOVERS_TEMPFILES_DAYS默认 1删除/tmp下超过该天数的.com.microsoft.Edge.*临时目录SE_BROWSER_LEFTOVERS_INTERVAL_SECS默认 3600清理循环的休眠间隔。镜像默认还设置了SE_OTEL_SERVICE_NAMEselenium-node-edge与SE_NODE_ENABLE_MANAGED_DOWNLOADStrueNodeEdge/Dockerfile 第 87-88 行后者让 Node 自动管理会话文件的下载目录。如何选用这些标签运行 Grid结合 docs/docker-hub/node-edge.md 的说明node-edge与standalone-edge的部署方式一致先docker network create grid再启动 Hub 与 Node并务必使用--shm-size2g参数。本次发布生成的标签可以按精度需求选用追求可复现使用全量标签selenium/node-edge:129.0.2792.89-edgedriver-129.0.2792.98-grid-4.29.0-20250303追求易读使用短版本标签selenium/node-edge:129.0-edgedriver-129.0-20250303追求跟随同版本内更新使用不带日期的129.0-edgedriver-129.0类标签本次未生成但首次发布时存在。从源码结构可以推断node-edge对应 Grid 的 Hub-Node 分布式模式standalone-edge则内置完整的 Grid 服务端Hub 节点合并单容器即可运行适合本地调试与 CI 中需要独立测试环境的最小化场景。小结一份edge_129.md看似只有 21 行日志实则完整编码了 docker-selenium 项目的发布方法论参数化打标脚本负责版本探测与标签拼装Dockerfile 的归档源与回退机制保障旧版本可安装包装器与清理进程保证运行时稳定性而 12 个标签则用不同精度为使用者提供了从精确复现到跟随最新的完整选择谱系。理解这套链路就能在浏览器版本快速迭代时始终准确锁定 Grid 中实际运行的 Edge 与 EdgeDriver 版本组合。赞分享测试后端云原生容器编排可观测性【免费下载链接】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 Edge 129 镜像标签从发布脚本到镜像选择实战解读 docker selenium Edge 129 镜像标签从发布脚本到镜像选择实战 本篇技术指南围绕 docker selenium 仓库中 Edge测试后端云原生容器编排可观测性docker-selenium 4.48.0 Firefox 129 镜像发布解读从打标签脚本到 GeckoDriver 0.37.1 的完整链路docker selenium 4.48.0 Firefox 129 镜像发布解读从打标签脚本到 GeckoDriver 0.37.1 的完整链路 本篇指南以测试后端云原生容器编排可观测性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测试后端云原生容器编排可观测性上一篇Delicate数据库迁移无缝升级和版本迁移的完整操作手册下一篇MinD-Vis多GPU训练实战分布式训练配置与性能调优指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考