
测试后端云原生容器编排可观测性【免费下载链接】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_120.md 为线索完整拆解该项目「浏览器版本 × Grid 版本」镜像矩阵的生成机制从tag_and_push_browser_images.sh的参数解析、版本探测到node-edge/standalone-edge全部标签命名规则的推导再到 Edge 120 镜像在容器中的安装与使用方式。读完本文你将能独立读懂仓库中任何一份edge_*.md变更记录并能按需精确拉取指定 Edge 与 EdgeDriver 版本的 Selenium Grid 镜像。一、这份变更记录在说什么edge_120.md的正文是一段tag_and_push_browser_images.sh脚本的完整执行输出核心信息如下./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true Tagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium Selenium Grid version - 4.30.0-20250323 Edge version - 120.0.2210.144 Short Edge version - 120.0 EdgeDriver version - 120.0.2210.144 Short EdgeDriver version - 120.0 Tagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.30.0-20250323 Tagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.30.0-20250323 Tagged selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-20250323 Tagged selenium/standalone-edge:120.0.2210.144-edgedriver-120.0.2210.144-20250323 Tagged selenium/node-edge:120.0.2210.144-20250323 Tagged selenium/standalone-edge:120.0.2210.144-20250323 Tagged selenium/node-edge:120.0-edgedriver-120.0-grid-4.30.0-20250323 Tagged selenium/standalone-edge:120.0-edgedriver-120.0-grid-4.30.0-20250323 Tagged selenium/node-edge:120.0-edgedriver-120.0-20250323 Tagged selenium/standalone-edge:120.0-edgedriver-120.0-20250323 Tagged selenium/node-edge:120.0-20250323 Tagged selenium/standalone-edge:120.0-20250323它记录的是在 Selenium Grid 4.30.0、构建日期 20250323 的发布中Edge 浏览器与其配套 EdgeDriver 均为120.0.2210.144脚本据此为node-edge与standalone-edge两类镜像生成了 12 个正式标签。这类文件由仓库的版本矩阵索引 CHANGELOG/README.md 统一链接每个 ✓ 指向对应版本变更记录其存在意义正如该 README 所述让用户既能跟上最新 Selenium Grid 核心功能又能按需锁定特定浏览器版本例如因兼容性问题需要固定在某个浏览器版本做跨浏览器测试。需要注意的是文档同样声明项目并未对「每个 Grid 版本 × 每个浏览器版本」的组合做全量回归测试选择组合时需要用户根据自身测试需求自行评估。二、命令参数与执行流程变更记录第一行就是命令的完整调用方式其参数含义由 tag_and_push_browser_images.sh 开头的位置参数解析一一对应位置参数本次取值含义1VERSION4.30.0Selenium Grid 版本2BUILD_DATE20250323构建日期YYYYMMDD3NAMESPACEselenium镜像命名空间仓库4PUSH_IMAGEfalse是否 push 到远端仓库默认false5BROWSERedge浏览器类型可选 chrome/chromium/edge/firefox/chrome-for-testing6RELEASE_OLD_VERSIONtrue是否同时补发旧版本标签false时额外追加一组无日期标签7PLATFORM省略目标平台默认linux/amd64脚本首先把VERSION与BUILD_DATE拼接成TAG_VERSION4.30.0-20250323脚本第 15 行随后进入edge)分支执行探测版本通过容器内命令获取真实版本号——docker run --rm selenium/node-edge:4.30.0-20250323 microsoft-edge --version | awk {print $3}得到120.0.2210.144docker run --rm selenium/node-edge:4.30.0-20250323 msedgedriver --version | awk {print $4}得到 EdgeDriver 版本120.0.2210.144。 注意 Chrome、Firefox 分支分别使用google-chrome --version、firefox --version而 Edge 的版本字段提取位置是$3、EdgeDriver 是$4各浏览器输出格式不同脚本按各自awk位置精确截取。生成短版本short_version()函数脚本第 53-57 行按.分割取前两段得到120.0。组装标签数组构造 6 个「长期」标签 6 个「旧版本发布」标签当RELEASE_OLD_VERSIONfalse时追加。循环打标for edge_tag in ${EDGE_TAGS[]}; do retag node-edge ...; retag standalone-edge ...; done即每个标签同时打到 Node 与 Standalone 两类镜像上。retag 与发布晋级路径retag()脚本第 31-51 行在默认情况下执行docker tag并在PUSH_IMAGEtrue时追加docker push。脚本还支持发布流水线「晋级」promote场景当PROMOTE_TAGStrue时镜像从未在本机构建过docker tag无法表达跨架构 manifest此时改用docker buildx imagetools create直接在 registry 间复制 manifest list并通过PROMOTE_GHCR_NAMESPACE在同一调用中镜像到 GHCR。这正是 Makefile 中 tag_and_push_edge_images 目标所调用的入口tag_and_push_edge_images: ./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) edge $(RELEASE_OLD_VERSION)三、Edge 镜像标签命名规则全解变更记录中的 12 行Tagged输出本质上是「浏览器版本 / EdgeDriver 版本 / Grid 版本 / 构建日期」四要素的三层组合。整理如下层级标签模式本次示例语义完整版edge-edgedriver-driver-grid-grid-date120.0.2210.144-edgedriver-120.0.2210.144-grid-4.30.0-20250323四要素全部锁定最精确中档edge-edgedriver-driver-date120.0.2210.144-edgedriver-120.0.2210.144-20250323浏览器 驱动 构建日期简化edge-date120.0.2210.144-20250323浏览器 构建日期短版本Grid 有日期edge短-edgedriver-driver短-grid-grid-date120.0-edgedriver-120.0-grid-4.30.0-20250323便于记忆的主版本组合短版本edge短-edgedriver-driver短-date120.0-edgedriver-120.0-20250323短版本浏览器 驱动 日期短版本最简edge短-date120.0-20250323短版本浏览器 日期需要强调由于本次RELEASE_OLD_VERSIONtrue脚本不会生成不带日期的「浮动」标签如selenium/node-edge:120.0.2210.144、selenium/node-edge:120.0。这一点在官方文档 docs/docker-hub/node-edge.md 的「How to choose the correct tag for you」一节有完整对照——该文档展示的Major.Minor-edgedriver-DriverMajor.DriverMinor-grid-Grid...等 10 种标签变体正是RELEASE_OLD_VERSIONfalse时全部追加后的完整形态。仓库刻意将旧版本发布与当次发布区分当发布者需要对历史版本补发标签时传true避免覆盖式浮动标签干扰新的镜像流。四、Edge 镜像内部NodeEdge 构建与运行原理要理解node-edge:120.0.2210.144-...镜像里装了什么需要看 NodeEdge/Dockerfile浏览器安装默认ARG EDGE_VERSIONmicrosoft-edge-stable。由于微软会从 packages.microsoft.com 清理旧版本EDGE_VERSION形如microsoft-edge-stable120.0.2210.144时Dockerfile 走「归档包」分支第 24-33 行从EDGE_ARCHIVE_SITENDViet/microsoft-edge-stable 的 release 归档下载对应版本的.deb并用--allow-downgrades安装否则从稳定仓库直接apt-get install最新版。启动包装器COPY wrap_edge_binary后将原/usr/bin/microsoft-edge移为-base写入包装脚本wrap_edge_binary设置umask 002、把--lang参数转成LANGUAGE环境变量、聚合所有SE_BROWSER_ARGS_*环境变量追加为启动参数最后以--no-sandbox方式exec真正的 Edge 二进制——这是容器内以 root-less 用户运行浏览器、并支持通过环境变量注入启动参数的关键机制。EdgeDriver 安装第 51-68 行优先从msedgedriver.microsoft.com的LATEST_RELEASE_主版本_LINUX探测对应驱动若旧版本已被修剪导致探测为空则回退到浏览器自身完整版本号再从归档站点下载最终软链到/usr/bin/msedgedriver。浏览器元信息第 82-85 行写入/opt/selenium/browsers/edge/{name,version,binary_location}其中binary_location指向${SE_BROWSER_BINARY_LOCATION:-/usr/bin/microsoft-edge}供 Grid Node 配置生成器识别浏览器。进程清理edge-cleanup.sh由 supervisord 常驻运行按SE_BROWSER_LEFTOVERS_PROCESSES_SECS、SE_BROWSER_LEFTOVERS_TEMPFILES_DAYS、SE_BROWSER_LEFTOVERS_INTERVAL_SECS周期清理卡死的 msedge 进程与/tmp下的临时文件。从构建侧看Makefile 第 571-582 行 表明Edge 镜像仅支持 linux/amd64Microsoft Edge is only supported on linux/amd64这与 generate_release_notes.sh 发布版本表中「Edge / EdgeDriver 在 aarch64 列标记为 x」相互印证——需要 arm64 场景时请选择 Chrome/Firefox 镜像。仓库还提供edge_dev、edge_beta目标Makefile 第 584-588 行分别以EDGE_VERSIONmicrosoft-edge-dev/beta构建开发版/测试版通道镜像。五、如何拉取并使用 Edge 120 镜像依据 docs/docker-hub/node-edge.md 的标准流程以本文主题的4.30.0-20250323系列标签为例# 1. 创建网络 docker network create grid # 2. 启动 Hub使用完整 Grid 标签 docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub \ selenium/hub:4.30.0-20250323 # 3. 启动 Edge 120 节点并连接事件总线 docker run -d --net grid -e SE_EVENT_BUS_HOSTselenium-hub \ --shm-size2g \ selenium/node-edge:120.0.2210.144-edgedriver-120.0.2210.144-grid-4.30.0-20250323关键注意事项浏览器类镜像务必使用--shm-size2g让容器使用宿主机共享内存避免浏览器崩溃若只想锁定「Edge 120 大版本 本次 Grid 构建」可使用短标签selenium/node-edge:120.0-edgedriver-120.0-grid-4.30.0-20250323测试脚本统一指向http://localhost:4444WebDriver 远程端点随后可将测试直接提交到该 Grid可选地通过http://localhost:7900/?autoconnect1resizescalepasswordsecret观看容器内浏览器画面结束使用后docker network rm grid清理网络。六、将本文知识应用到任意 Edge 版本理解了上述机制后仓库中任何一份edge_*.md如 CHANGELOG/4.48.0/edge_120.md、CHANGELOG/archived/4.47.0/edge_151.md 等都可以按同一套方法解读读取首行命令参数 → 对照四要素组合规律还原全部标签 → 到 CHANGELOG/README.md 的 Edge 矩阵表中按 Grid 版本定位具体变更记录 → 用对应标签拉取镜像运行。若需要与 Node 不同的独立浏览器部署形态可将node-edge替换为standalone-edge构建方式见 Makefile 第 655-674 行同样仅支持 amd64。参考资料CHANGELOG/README.md浏览器 × Grid 版本矩阵与阅读说明tag_and_push_browser_images.sh标签生成与推送脚本完整实现NodeEdge/DockerfileEdge 与 EdgeDriver 的安装逻辑NodeEdge/wrap_edge_binaryEdge 启动参数包装器NodeEdge/edge-cleanup.shEdge 进程与临时文件清理docs/docker-hub/node-edge.mdNode Edge 镜像使用与标签选型指南MakefileEdge 镜像构建、测试与发布目标generate_release_notes.sh发布版本表Edge 仅 amd64生成逻辑赞分享测试后端云原生容器编排可观测性【免费下载链接】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 镜像标签体系深度解析以 Chrome 112 Selenium Grid 4.30.0 发布记录为例docker selenium 镜像标签体系深度解析以 Chrome 112 Selenium Grid 4.30.0 发布记录为例 本文以 CHANGE测试后端云原生容器编排可观测性docker-selenium 镜像标签体系深度解析以 Selenium Grid 4.29.0 Edge 131.0 构建为例docker selenium 镜像标签体系深度解析以 Selenium Grid 4.29.0 Edge 131.0 构建为例 本文以 docker s测试后端云原生容器编排可观测性Selenium Grid Docker 镜像标签体系全解以 docker-selenium 4.30.0 Chrome 120 的 20 个镜像 Tag 为例Selenium Grid Docker 镜像标签体系全解以 docker selenium 4.30.0 Chrome 120 的 20 个镜像 Tag测试后端云原生容器编排可观测性上一篇easy-vibe 实战为微信小程序接入 CloudBase 后端构建可信工单系统下一篇es-toolkit 函数式编程 uniqWith 详解在 pipe 流水线中用自定义相等函数高效去重创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考