
测试后端云原生容器编排可观测性【免费下载链接】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.29.0/edge_133.md 为骨架完整还原 Selenium Grid 4.29.0 配套 Edge 133 浏览器镜像的标签生成过程。你将理解selenium/node-edge与selenium/standalone-edge镜像上数十个标签的命名规律、版本探测机制、发布脚本的参数语义以及这份 changelog 在项目版本矩阵与 Docker Hub 描述生成流程中的实际作用从而能够自行阅读任意历史发布记录并准确选择所需镜像标签。一、背景changelog 文档在版本矩阵中的定位在 docker-selenium 项目中CHANGELOG/目录按 Selenium Grid 版本号组织如4.29.0每个版本目录下存放按浏览器与主版本号命名的发布记录文件例如edge_133.md、chrome_133.md、firefox_136.md。这些文件并非纯叙述性变更日志而是一份命令执行记录——它真实记录了某次镜像发布时运行 tag_and_push_browser_images.sh 脚本后生成的完整标签清单。CHANGELOG/README.md 明确了这套矩阵的设计动机为 Selenium Grid 核心版本持续提供新功能的同时让用户能够针对特定浏览器版本做跨浏览器测试或版本锁定例如某个浏览器版本存在已知问题或支持受限时。因此项目同时发布打包了 Grid 与特定浏览器/驱动版本的 Node 与 Standalone 镜像用户只需查阅矩阵、找到目标标签并拉取镜像即可开始测试。矩阵中的每个 ✓ 均链接到对应的 changelog 文件而edge_133.md正是 Grid 4.29.0 与 Edge 133 组合的明细页。值得注意的是README 同时声明项目并未对Grid 版本 × 浏览器版本的每种组合做全量测试用户需要根据自身测试需求自行评估。这一前提同样适用于下文所有标签。二、发布命令与参数语义原文档第 2 行记录了本次发布的完整命令./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false edge true对照 tag_and_push_browser_images.sh 的脚本头部可得到 7 个位置参数的真实含义参数本次取值含义$1VERSION4.29.0Selenium Grid 版本号$2BUILD_DATE20250303构建日期YYYYMMDD$3NAMESPACEseleniumDocker Hub 镜像命名空间$4PUSH_IMAGEfalse是否执行docker pushfalse 表示仅本地打标签不推送$5BROWSERedge浏览器类型脚本case分支的匹配键$6RELEASE_OLD_VERSIONtrue是否同时保留无 build date的旧式标签$7PLATFORM缺省目标平台默认linux/amd64脚本据此拼出基准标签TAG_VERSION${VERSION}-${BUILD_DATE}即4.29.0-20250303这也是发布记录第 4 行打印的 Selenium Grid version。当RELEASE_OLD_VERSIONtrue本次场景时脚本会在生成基础标签组之外额外追加一组不带 build date 的标签以兼容早期版本用户习惯的引用方式。三、版本探测从镜像内运行二进制获取真实版本脚本并未手工硬编码浏览器版本而是在已经构建好的node-edge:4.29.0-20250303镜像内通过docker run执行二进制并解析输出版本号tag_and_push_browser_images.shEDGE_VERSION$(docker run --rm ${NAMESPACE}/node-edge:${TAG_VERSION} microsoft-edge --version | awk {print $3}) EDGE_SHORT_VERSION$(short_version ${EDGE_VERSION}) EDGEDRIVER_VERSION$(docker run --rm ${NAMESPACE}/node-edge:${TAG_VERSION} msedgedriver --version | awk {print $4}) EDGEDRIVER_SHORT_VERSION$(short_version ${EDGEDRIVER_VERSION})microsoft-edge --version输出的第三列即完整版本号本次解析结果为133.0.3065.92msedgedriver --version输出的第四列即 EdgeDriver 完整版本号本次同样为133.0.3065.92short_version()函数脚本 L53-L57按.切分版本串并仅保留前两段得到短版本133.0。这一探测方式保证了标签中的版本号与镜像内实际二进制完全一致杜绝了手工登记版本与真实内容漂移的问题。本次记录的探测结果如下Selenium Grid version - 4.29.0-20250303 Edge version - 133.0.3065.92 Short Edge version - 133.0 EdgeDriver version - 133.0.3065.92 Short EdgeDriver version - 133.0四、标签生成规则完整还原本次发布的全部标签脚本基于上述五个版本变量构造了两大类标签组tag_and_push_browser_images.sh第一类携带 build date 的标签每发布必有${EDGE_VERSION}-edgedriver-${EDGEDRIVER_VERSION}-grid-${TAG_VERSION}——最长标签含完整浏览器版本、驱动版本与 Grid 发布标识${EDGE_VERSION}-edgedriver-${EDGEDRIVER_VERSION}-${BUILD_DATE}——完整版本 build date${EDGE_VERSION}-${BUILD_DATE}——仅浏览器完整版本 build date${EDGE_SHORT_VERSION}-edgedriver-${EDGEDRIVER_SHORT_VERSION}-grid-${TAG_VERSION}——短版本的全要素标签${EDGE_SHORT_VERSION}-edgedriver-${EDGEDRIVER_SHORT_VERSION}-${BUILD_DATE}——短版本 build date${EDGE_SHORT_VERSION}-${BUILD_DATE}——仅浏览器短版本 build date。第二类不带 build date 的标签RELEASE_OLD_VERSIONtrue时追加7.${EDGE_VERSION}-edgedriver-${EDGEDRIVER_VERSION} 8.${EDGE_VERSION} 9.${EDGE_SHORT_VERSION}-edgedriver-${EDGEDRIVER_SHORT_VERSION} 10.${EDGE_SHORT_VERSION}。上述 10 个标签会同时作用于node-edge与standalone-edge两个镜像脚本 L189-L192共产生 20 个镜像标签引用。原文档记录的实际输出如下Tagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.29.0-20250303 Tagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-grid-4.29.0-20250303 Tagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92-20250303 Tagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92-20250303 Tagged selenium/node-edge:133.0.3065.92-20250303 Tagged selenium/standalone-edge:133.0.3065.92-20250303 Tagged selenium/node-edge:133.0-edgedriver-133.0-grid-4.29.0-20250303 Tagged selenium/standalone-edge:133.0-edgedriver-133.0-grid-4.29.0-20250303 Tagged selenium/node-edge:133.0-edgedriver-133.0-20250303 Tagged selenium/standalone-edge:133.0-edgedriver-133.0-20250303 Tagged selenium/node-edge:133.0-20250303 Tagged selenium/standalone-edge:133.0-20250303 Tagged selenium/node-edge:133.0.3065.92-edgedriver-133.0.3065.92 Tagged selenium/standalone-edge:133.0.3065.92-edgedriver-133.0.3065.92 Tagged selenium/node-edge:133.0.3065.92 Tagged selenium/standalone-edge:133.0.3065.92 Tagged selenium/node-edge:133.0-edgedriver-133.0 Tagged selenium/standalone-edge:133.0-edgedriver-133.0 Tagged selenium/node-edge:133.0 Tagged selenium/standalone-edge:133.0对使用者而言这套标签体系提供了三种精度锁定到补丁版本如selenium/node-edge:133.0.3065.92适合对驱动与浏览器补丁级版本有严格要求的复现场景锁定到大版本如selenium/standalone-edge:133.0适合以major.minor为粒度的常规测试基线随后续补丁发布自动演进带 Grid 发布标识如selenium/node-edge:133.0-edgedriver-133.0-grid-4.29.0-20250303可同时确认 Grid 核心、浏览器与驱动的三方版本组合便于排查跨组件兼容性问题。五、底层的 retag 与发布机制脚本中的核心操作由retag()函数tag_and_push_browser_images.sh完成。常规流程下它执行docker tag ${NAMESPACE}/${__image}:${TAG_VERSION} ${NAMESPACE}/${__image}:${__tag}并在PUSH_IMAGEtrue时追加docker push。由于本次调用第四参数为false发布记录中仅出现 Tagged 输出没有推送动作。retag()还内置了一条面向 CI 发布流程的分支当环境变量PROMOTE_TAGStrue时源镜像只存在于远端 registry本地没有该镜像层docker tag无法表达这一别名关系且docker pull只会带回 runner 架构的镜像导致标签退化为单架构。此时函数改用docker buildx imagetools create在 registry 与 registry 之间直接基于 manifest index 复制标签从而保持多架构multi-architecture语义若同时设置PROMOTE_GHCR_NAMESPACE还会在同一个调用中把镜像同步镜像到 GHCR 命名空间。在 Makefile 层面tag_and_push_browser_images聚合目标Makefile串联了 chrome、chrome-for-testing、chromium、firefox、edge 五类浏览器的发布子目标其中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等变量由更上层的发布入口统一注入。也就是说edge_133.md第 2 行的命令正是make tag_and_push_edge_images展开后的实际形态。六、版本从何而来NodeEdge 镜像的构建基础标签里的133.0.3065.92与133.0.3065.92EdgeDriver并非随机出现而是 NodeEdge/Dockerfile 构建产物的直接反映浏览器安装L16-L34ARG EDGE_VERSIONmicrosoft-edge-stable默认安装稳定版若通过microsoft-edge-stable版本号指定具体版本则因微软会清理 packages.microsoft.com 上的旧包构建会从按版本归档的EDGE_ARCHIVE_SITENDViet/microsoft-edge-stable 的 releases拉取对应.deb安装与 Google Chrome 走 NDViet/google-chrome-stable 归档的思路一致驱动安装L51-L68未指定EDGE_DRIVER_VERSION时先从microsoft-edge --version提取主版本号向msedgedriver.microsoft.com/LATEST_RELEASE_major_LINUX查询最新驱动若该指针已被清理微软同样会裁剪旧版 msedgedriver则回退到与浏览器完全相同的版本号并从归档站点下载对应的edgedriver_linux64.zip或edgedriver_linux-aarch64.zip解压后以版本号命名并软链到/usr/bin/msedgedriver启动包装wrap_edge_binary构建时把/usr/bin/microsoft-edge重命名为-base后缀再生成包装脚本实现--lang语言环境转换、收集SE_BROWSER_ARGS_*系列环境变量并追加--no-sandbox启动参数浏览器信息落盘L82-L85构建结束时向/opt/selenium/browsers/edge/写入浏览器 name、version 以及包含ms:edgeOptions.binary的binary_location文件供 Selenium Node 的配置生成NodeBase/generate_config使用。而 Standalone 镜像Standalone/Dockerfile则以--build-arg BASEnode-edge在 NodeEdge 之上叠加 Selenium 服务器与独立配置对应 Makefile 的 edge_upgrade_version 目标这就是为什么node-edge与standalone-edge会共享同一套版本标签。七、changelog 的下游消费版本解析与文档生成发布记录不仅面向人类读者还服务于自动化。仓库测试 tests/dockerhub_description/test_resolve_versions.py 展示了其解析逻辑parse_changelog()从 changelog 文本中提取各浏览器的Short 版本与 Grid 标签且明确优先短版本而非完整版本resolve()汇聚各浏览器的 changelog 与 Grid 版本信息用于生成 Docker Hub 描述中的版本矩阵。测试还覆盖了newest_changelog()只按浏览器主版本号选取最新记录、且chrome前缀不会误匹配chrome-for-testing等边界行为。这解释了为什么edge_133.md会同时打印完整版本133.0.3065.92与短版本133.0完整版本服务于人类排障与精确锁定短版本则被下游脚本直接消费用于 Docker Hub 页面的版本对照表。同理CHANGELOG/README.md版本矩阵中 4.29.0 一行的edge_133单元格链接即指向本文所解析的这份记录。八、如何验证与使用这些镜像如需验证某个标签对应的镜像内容可任选以下方式以本次发布为例# 查看镜像的完整版本信息 docker run --rm selenium/node-edge:133.0-edgedriver-133.0-grid-4.29.0-20250303 microsoft-edge --version docker run --rm selenium/node-edge:133.0-edgedriver-133.0-grid-4.29.0-20250303 msedgedriver --version # 确认 Selenium Grid 服务器版本 docker run --rm selenium/standalone-edge:133.0-edgedriver-133.0-20250303 /opt/selenium/selenium-server.jar info --version在 Selenium Grid 场景中selenium/node-edge:133.0可作为 Hub/Standalone 的节点镜像注册到 Grid在独立测试场景中selenium/standalone-edge:133.0可直接暴露 4444 端口运行完整 Grid映射到SE_NODE_*系列环境变量见 Standalone/Dockerfile 中SE_SESSION_REQUEST_TIMEOUT、SE_SESSION_RETRY_INTERVAL、SE_RELAX_CHECKS等默认值。选择标签时优先使用带grid-段的标签以同时锁定 Grid、浏览器与驱动三个维度日常迭代则可使用133.0这类短标签跟随补丁更新。九、小结通过对edge_133.md这份发布记录及其背后的源码追索可以完整还原 docker-selenium 浏览器镜像发布的整条链路构建NodeEdge/Dockerfile→ 版本探测脚本内docker run→ 标签生成short_version与 10 类标签组合→ 打标签/推送retag含 CI 场景的imagetools多架构路径→ 记录归档changelog→ 下游消费Docker Hub 描述生成。理解这一机制后任何一份CHANGELOG/下的浏览器发布记录都可以被快速解码也能够在自己的 CI 中复刻同样的标签策略为浏览器自动化测试提供稳定、可追溯的镜像版本基线。赞分享测试后端云原生容器编排可观测性【免费下载链接】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 镜像标签体系全解以 Selenium Grid 4.29.0 Chrome 131.0.6778.264 发布为例docker selenium 镜像标签体系全解以 Selenium Grid 4.29.0 Chrome 131.0.6778.264 发布为例 导读测试后端云原生容器编排可观测性Sigma 规则库中的 3CX 软件供应链攻击检测8 条 Emerging Threats 规则实战解析Sigma 规则库中的 3CX 软件供应链攻击检测8 条 Emerging Threats 规则实战解析 导读 本文聚焦 rules emerging thr测试后端云原生容器编排可观测性Legacy iOS Kit深度解析iOS设备降级与越狱的全能工具架构解密Legacy iOS Kit深度解析iOS设备降级与越狱的全能工具架构解密 Legacy iOS Kit是一款功能强大的iOS设备管理工具专为旧款iOS设备测试后端云原生容器编排可观测性上一篇Windows 11界面终极定制指南三步恢复经典开始菜单并深度个性化你的桌面下一篇如何快速搭建企业级后台管理系统Layui-Admin完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考