docker-selenium 浏览器版本矩阵与多 Tag 发布机制解读:以 Selenium Grid 4.28.1 + Chrome 106 归档记录为例

发布时间:2026/10/4 1:54:51
docker-selenium 浏览器版本矩阵与多 Tag 发布机制解读:以 Selenium Grid 4.28.1 + Chrome 106 归档记录为例 测试后端云原生容器编排可观测性【免费下载链接】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.28.1/chrome_106.md 这份归档发布记录为切入点逐行解读 docker-selenium 项目在发布指定浏览器版本 指定 Selenium Grid 版本镜像时的多 Tag 命名体系与完整打标流程。读完本文你将能够看懂版本矩阵中每个✓对应的镜像 Tag 含义、理解 tag_and_push_browser_images.sh 脚本的七个参数与底层执行逻辑、并在自己的测试环境中精确拉取Chrome 106 ChromeDriver 106 Grid 4.28.1这一组合的 Node 或 Standalone 镜像。这份 Changelog 记录是什么版本矩阵中的一个格子docker-selenium 项目维护着一张Grid 版本 × 浏览器版本的镜像矩阵见 CHANGELOG/README.md。该矩阵的动机非常明确持续供应带新功能的 Selenium Grid 核心版本同时允许用户在浏览器版本上钉住某个旧版本——无论是出于跨浏览器测试覆盖还是某个浏览器特定版本存在兼容问题需要回退。矩阵中每一格是一个✓链接到对应 Grid 版本目录下的浏览器版本 Changelog 文件例如归档的 4.28.1 版本支持 Chrome 95132 共 38 个版本其中chrome_106.md记录的正是Selenium Grid 4.28.1 Chrome 106.0.5249.119 ChromeDriver 106.0.5249.61这一组合的镜像打标结果。需要特别留意矩阵 README 中的一条免责声明项目并未对每一种 Grid × 浏览器组合做全量兼容性测试用户应根据自己的测试要求自行评估和决策。这意味着这类 Changelog 记录的本质是可用的镜像 Tag 清单而非兼容性担保。逐行解读 4.28.1 的 Chrome 106 打标输出归档记录完整保留了发布命令及其全部输出我们按三段来解读。命令行参数拆解./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true对照 tag_and_push_browser_images.sh 开头的参数定义这条命令的七个位置参数含义如下位置参数本例取值说明$1VERSION4.28.1Selenium Grid 版本号$2BUILD_DATE20250202构建日期用于生成形如4.28.1-20250202的版本串$3NAMESPACEselenium镜像命名空间注意脚本内NAMESPACE${NAME:-selenium}允许用NAME环境变量覆盖$4PUSH_IMAGEfalse是否在打标后执行docker push默认false$5BROWSERchrome浏览器类型可选chrome/chromium/edge/firefox/chrome-for-testing$6RELEASE_OLD_VERSIONtrue是否为旧版本浏览器发布true时不生成不带日期的浮动 Tag原因见下文$7PLATFORM默认linux/amd64运行版本探测容器时使用的平台本例第 6 个参数为true对应重新发布旧浏览器版本的场景此时脚本只生成 6 个带明确语义的 Tag每个镜像家族避免把selenium/node-chrome:106.0这类浮动 Tag重新指向旧版本干扰使用最新版 Chrome 的用户。版本探测输出Selenium Grid version - 4.28.1-20250202 Chrome version - 106.0.5249.119 Short Chrome version - 106.0 ChromeDriver version - 106.0.5249.61 Short ChromeDriver version - 106.0这几行是脚本真实执行docker run从镜像内探测出来的结果。对应源码在 tag_and_push_browser_images.shdocker run --platform ${PLATFORM} --rm ${NAMESPACE}/node-chrome:${TAG_VERSION} google-chrome --version | awk {print $3}探测 Chrome 完整版本docker run --platform ${PLATFORM} --rm ${NAMESPACE}/node-chrome:${TAG_VERSION} chromedriver --version | awk {print $2}探测 ChromeDriver 完整版本short_version函数按.切分后取前两段生成106.0这样的短版本号见 short_version。12 行 Tagged 输出与 Tag 命名规则记录中一共生成了 12 个 Tagnode-chrome与standalone-chrome两个镜像家族各 6 个。以node-chrome为例Tag语义selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.28.1-20250202浏览器完整版 驱动完整版 Grid 完整版本串最精确、可完整复现selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-20250202浏览器完整版 驱动完整版 构建日期selenium/node-chrome:106.0.5249.119-20250202浏览器完整版 构建日期selenium/node-chrome:106.0-chromedriver-106.0-grid-4.28.1-20250202浏览器短版 驱动短版 Grid 版本串selenium/node-chrome:106.0-chromedriver-106.0-20250202浏览器短版 驱动短版 构建日期selenium/node-chrome:106.0-20250202浏览器短版 构建日期这些 Tag 集合由 CHROME_TAGS 数组 生成前 6 个始终生成只有当RELEASE_OLD_VERSIONfalse时才会追加 4 个浮动 Tag${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}、${CHROME_VERSION}、短版本对应的两个这正是归档记录中看不到selenium/node-chrome:106.0这类 Tag 的原因。standalone-chrome家族完全复用同一组 Tag仅镜像名不同。源码视角打标脚本的完整执行流程打标与推送retag函数每个 Tag 都经由 retag 落地该函数支持两条路径常规路径PROMOTE_TAGS未开启执行docker tag ${NAMESPACE}/${image}:${TAG_VERSION} ${NAMESPACE}/${image}:${tag}若PUSH_IMAGEtrue随后执行docker push。镜像晋升路径PROMOTE_TAGStrue当发布流程直接复用 CI 已测试通过的镜像、而不是重新构建时docker tag无法表达从远端仓库给 index 加 Tag且会丢失多架构属性因此改用docker buildx imagetools create --tag ... ${NAMESPACE}/${image}:${TAG_VERSION}在 registry 之间直接操作镜像 index若设置了PROMOTE_GHCR_NAMESPACE同一调用还会同步镜像到 GHCR。该变量由deploy.yml在发布时注入见脚本头注释而tag_and_push_browser_images_ghcr这一 Makefile 目标Makefile则是在本地构建路径下通过docker images枚举全部本地 Tag 并用docker buildx imagetools create镜像到 GHCR 的另一种做法。分支结构脚本以case ${BROWSER}分派到不同的浏览器分支脚本 L61-L285每个分支的探测命令与版本号提取列略有差异chromegoogle-chrome --version取第 3 列、chromedriver --version取第 2 列支持--platformchromiumchromium --version取第 2 列edgemicrosoft-edge --version取第 3 列、msedgedriver --version取第 4 列firefoxfirefox --version取第 3 列、geckodriver --version取第 1 行第 2 列chrome-for-testinggoogle-chrome --version取第 5 列。任一分支的 Tag 生成逻辑与 Chrome 完全同构版本号/日期/短版本三种粒度 × 是否带-grid-前缀只是把chromedriver替换为对应的geckodriver/edgedriver。Makefile 集成与发布上下文打标脚本通过 Makefile 目标接入发布流程Makefiletag_and_push_browser_images: tag_and_push_chrome_images tag_and_push_chrome-for-testing_images tag_and_push_chromium_images tag_and_push_firefox_images tag_and_push_edge_images tag_and_push_chrome_images: ./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) chrome $(RELEASE_OLD_VERSION)相关变量默认值也定义在 Makefile 顶部MakefileTAG_VERSION : $(VERSION)-$(BUILD_DATE)、PUSH_IMAGE默认false、RELEASE_OLD_VERSION默认false。也就是说默认发布会追加浮动 Tag如selenium/node-chrome:106.0仅当显式传入RELEASE_OLD_VERSIONtrue即归档记录中的场景时才省略。发布前的版本一致性核验也可以参考 Makefile 中chrome_upgrade_version目标的写法Makefile构建后依次执行selenium-server.jar info --version、google-chrome --version、chromedriver --version确认三者的版本与预期一致——这与 generate_release_notes.sh 生成发布说明时所用的探测命令完全同源。实际使用根据 Tag 精确拉取镜像理解命名规则后使用就非常直接。例如需要Chrome 106 完整版 ChromeDriver 106 完整版 Grid 4.28.1-20250202的 Node 镜像用于 Selenium Griddocker pull selenium/node-chrome:106.0.5249.119-chromedriver-106.0.5249.61-grid-4.28.1-20250202若只关心浏览器主版本而不在意小版本可以用短版本 Tagdocker pull selenium/node-chrome:106.0-chromedriver-106.0-grid-4.28.1-20250202若团队约定以构建日期为准则使用docker pull selenium/standalone-chrome:106.0.5249.119-20250202也可以参考仓库根目录下的 docker-compose-v3.yml 这类 compose 文件把image:字段换成上述任意 Tag即可让整套 GridHub/Node/Standalone运行在钉死的浏览器版本上。选择 Tag 时建议按此顺序决策需要精确复现 CI 环境时用完整版 grid 版本串需要跟上 Grid 修复时用带构建日期的 Tag不建议在生产测试中依赖无日期浮动 Tag因为它们会被后续版本重新指向。归档策略与使用限制从 CHANGELOG/README.md 可以看到同一浏览器版本会在多个 Grid 版本下各自保留一份记录Chrome 106 同时存在于 4.28.1归档与 4.48.0当前等若干版本目录Tag 内容结构完全一致区别仅在 Grid 版本串与构建日期如 CHANGELOG/4.48.0/chrome_106.md 使用的是4.48.0-20260909。这种每版本一份记录的结构让用户既能横向对比不同 Grid 版本下的同一浏览器也能纵向回溯某个 Grid 版本支持的全部浏览器范围。最后再次强调两条使用边界其一版本矩阵只保证镜像已按此组合构建并打标不保证所有组合都经过完整功能测试引入新组合前应在自己的用例上做冒烟验证仓库的 tests/ 目录提供了 SmokeTests、SeleniumJavaTests 等参考用例其二归档目录下的记录对应已进入维护期的 Grid 版本除非确有钉版本需求新项目优先从当前版本目录如 CHANGELOG/4.48.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 浏览器镜像版本矩阵与标签约定以 Chrome 131 与 Selenium Grid 4.28.1 发布为例docker selenium 浏览器镜像版本矩阵与标签约定以 Chrome 131 与 Selenium Grid 4.28.1 发布为例 本文以 CHAN测试后端云原生容器编排可观测性Salesforce Apex 开发实战指南从类结构、Trigger 框架到异步模式与 Governor Limit 管理Salesforce Apex 开发实战指南从类结构、Trigger 框架到异步模式与 Governor Limit 管理 本指南以 claude skill测试后端云原生容器编排可观测性docker-selenium 浏览器镜像标签体系全解析以 Selenium Grid 4.28.1 与 Chrome 124 发布记录为例docker selenium 浏览器镜像标签体系全解析以 Selenium Grid 4.28.1 与 Chrome 124 发布记录为例 在 Seleni测试后端云原生容器编排可观测性上一篇Yaak主题分享链接一键生成界面样式的分享URL下一篇MinDoc社区版功能限制解析5个关键场景需要商业授权创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询