docker-selenium 固定浏览器版本镜像的打标签与发布全流程解析:以 Selenium Grid 4.32.0 + Chrome 98 为例
测试后端云原生容器编排可观测性【免费下载链接】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.32.0/chrome_98.md记录的真实发布日志为主线完整解析 docker-selenium 项目如何通过tag_and_push_browser_images.sh为固定 Chrome 版本 最新 Selenium Grid组合生成并发布 Docker 镜像标签。读完本文你将掌握该脚本的参数含义、版本探测逻辑、标签命名约定、docker tag/docker push的底层实现以及如何在实际测试中正确选择并拉取对应镜像。为什么需要旧浏览器 新 Grid的镜像组合在 docker-selenium 仓库的 CHANGELOG/README.md 中明确说明了这套版本矩阵的设计动机项目希望持续供应最新的 Selenium Grid 核心版本以引入新功能同时让用户能够基于特定浏览器版本进行测试——例如跨浏览器测试或因为某些浏览器版本存在兼容问题而需要锁定旧版本。因此仓库同时交付 Node 与 Standalone 两类镜像将 Grid、浏览器、浏览器驱动打包在一起用户只需找到镜像标签、拉取镜像即可开始测试。CHANGELOG/archived/4.32.0/目录正是这一策略的产物它记录了 Grid 4.32.0 版本对 Chrome 95 至 134 等一批浏览器版本的打包发布过程。其中 chrome_98.md 记录的是一次典型的发布执行日志——对 Chrome 98.0.4758.102 这一早已停止更新的旧版本重新打包进当时最新的 Grid 4.32.0。归档目录本身由 CHANGELOG/generate-matrix-readme.py 维护脚本会按语义化版本排序将除最新版本外的所有 Grid 版本目录移动到archived/下再扫描所有*_version.md文件自动生成 README 版本矩阵表。也就是说这份日志不仅是历史记录更是版本矩阵可追溯性的来源。发布命令与七个位置参数chrome_98.md记录的完整命令如下./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true对照 tag_and_push_browser_images.sh 顶部的参数解析逻辑该脚本共接受 7 个位置参数位置参数本命令中的值说明$1VERSION4.32.0Selenium Grid 版本号$2BUILD_DATE20250515构建日期YYYYMMDD与 VERSION 拼成TAG_VERSION4.32.0-20250515$3NAMESPACEselenium镜像仓库命名空间即selenium/node-chrome、selenium/standalone-chrome的前缀$4PUSH_IMAGEfalse是否在打标签后执行docker pushfalse表示仅在本机打标签$5BROWSERchrome浏览器类型脚本通过case分支支持chrome、chromium、edge、firefox、chrome-for-testing$6RELEASE_OLD_VERSIONtrue是否以老版本发布模式运行决定是否生成不带构建日期的浮动标签见后文$7PLATFORMlinux/amd64默认值用于探测版本时docker run的--platform参数脚本开始时会输出Tagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium随后进入chrome)分支。从镜像内部探测真实版本号打标签前脚本必须先确认镜像里实际安装的 Chrome 与 ChromeDriver 版本。这一步通过运行镜像内的可执行文件并用awk抽取版本号实现tag_and_push_browser_images.shCHROME_VERSION$(docker run --platform ${PLATFORM} --rm ${NAMESPACE}/node-chrome:${TAG_VERSION} google-chrome --version | awk {print $3}) CHROMEDRIVER_VERSION$(docker run --platform ${PLATFORM} --rm ${NAMESPACE}/node-chrome:${TAG_VERSION} chromedriver --version | awk {print $2})探测 Chrome 时使用--platform ${PLATFORM}保证在非 amd64 的构建机上也能探测正确架构的镜像--rm使探测容器运行后立即清理awk {print $3}从Google Chrome 98.0.4758.102这类输出中取出版本号因此日志中打印出Chrome version - 98.0.4758.102ChromeDriver 输出形如ChromeDriver 98.0.4758.102 (...)故用awk {print $2}取第二列。随后short_version()函数将完整版本号截短为两位tag_and_push_browser_images.shfunction short_version() { local __long_version$1 local __version_split(${__long_version//./ }) echo ${__version_split[0]}.${__version_split[1]} }它按.拆分后取前两段得到98.0。日志中Short Chrome version - 98.0、Short ChromeDriver version - 98.0即由此而来。短版本标签的价值在于当 Chrome 发布补丁版本如 98.0.4758.103时指向98.0的浮动标签会自动跟着新的补丁版本走适合不想频繁改配置的用户。探测到的版本之所以与安装脚本一致可追溯到镜像构建链NodeChrome/Dockerfile 通过ARG CHROME_VERSION默认google-chrome-stable控制安装的 Chrome并调用install-chrome.shNodeChrome/install-chrome.sh 支持google-chrome-stable具体版本形式从版本归档下载对应.deb精确安装从而保证镜像内版本可被锁定与复现。标签组合规则同一镜像生成 12 个标签日志显示 Chrome 分支在RELEASE_OLD_VERSIONtrue模式下生成了 12 个标签tag_and_push_browser_images.sh可分为三类完整版本 Grid 完整标识形如98.0.4758.102-chromedriver-98.0.4758.102-grid-4.32.0-20250515浏览器、驱动、Grid、构建日期全部精确到点可复现性最强完整版本 构建日期如98.0.4758.102-chromedriver-98.0.4758.102-20250515、98.0.4758.102-20250515省略 Grid 版本但保留日期短版本 构建日期/Grid如98.0-chromedriver-98.0-grid-4.32.0-20250515、98.0-chromedriver-98.0-20250515、98.0-20250515使用两位短版本号。由于RELEASE_OLD_VERSIONtrue脚本跳过第 88-99 行的浏览器版本 浏览器驱动版本不带日期一类浮动标签例如纯98.0.4758.102、纯98.0避免旧版本镜像携带误导性的浮动标签。这与日志输出完全吻合12 个标签全部带20250515或grid-4.32.0-20250515后缀。循环体对node-chrome与standalone-chrome两个镜像名各执行一次retagtag_and_push_browser_images.sh因此日志共出现 24 行Tagged ...。retag 的两种模式docker tag 与 buildx imagetoolsretag()函数tag_and_push_browser_images.sh是打标签的核心实现支持两种模式常规模式PROMOTE_TAGSfalse执行docker tag ${NAMESPACE}/${__image}:${TAG_VERSION} ${NAMESPACE}/${__image}:${__tag}在本地给已构建镜像追加别名若PUSH_IMAGEtrue则再执行docker push。本次日志中PUSH_IMAGEfalse因此只产生Tagged ...输出而不推送。发布提升模式PROMOTE_TAGStrue当 CI 发布时直接推广其测试过的镜像而非重新构建时本地仓库没有对应镜像docker tag无法工作且docker pull只能拉回运行者架构导致单架构标签。此时改用docker buildx imagetools create在镜像索引层registry 到 registry直接创建多架构标签并可通过PROMOTE_GHCR_NAMESPACE在同一调用中同时镜像到 GHCR 命名空间。实战如何根据标签拉取与运行 Chrome 98 镜像结合 docs/docker-hub/node-chrome.md 中的标签约定说明本次发布的核心可用标签为精确锁定selenium/node-chrome:98.0.4758.102-chromedriver-98.0.4758.102-grid-4.32.0-20250515按浏览器主版本锁定selenium/node-chrome:98.0-20250515Standalone 变体同理替换镜像名为selenium/standalone-chrome典型的 Hub Node 运行方式注意浏览器镜像需使用--shm-size2gdocker network create grid docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:latest docker run -d --net grid -e SE_EVENT_BUS_HOSTselenium-hub \ --shm-size2g \ selenium/node-chrome:98.0-20250515随后将 WebDriver 测试指向http://localhost:4444即可。该文档同时提醒项目中并未对每一个 Grid × 浏览器组合做完整测试验证CHANGELOG/README.md 中的 Note 也声明了这一点用户在锁定旧浏览器版本时应根据自身测试需求评估该组合的可用性——这也正是固定版本标签存在的意义把选择权交给用户。小结CHANGELOG/archived/4.32.0/chrome_98.md看似只是一段 24 行的命令日志实则是 docker-selenium 版本矩阵发布机制的一个完整切片它串联起参数解析tag_and_push_browser_images.sh、镜像内版本探测、短版本截取、12 类标签组合、retag的双模式实现以及 CHANGELOG/README.md 与 CHANGELOG/generate-matrix-readme.py 组成的矩阵归档体系。对于需要在 Selenium Grid 上固定 Chrome 98 这类旧浏览器版本的测试团队理解这套标签语义即可在版本可复现与标签简洁性之间做出合适的选择。赞分享测试后端云原生容器编排可观测性【免费下载链接】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点击查看免费下载相关推荐Gutenberg MenuItemsChoice 组件详解在 wordpress/components 中实现菜单单选组Gutenberg MenuItemsChoice 组件详解在 wordpress/components 中实现菜单单选组 本文围绕 Gutenberg 仓测试后端云原生容器编排可观测性docker-selenium 浏览器镜像标签发布全解析以 Selenium Grid 4.32.0 Chrome 113 发布记录为例docker selenium 浏览器镜像标签发布全解析以 Selenium Grid 4.32.0 Chrome 113 发布记录为例 本篇指南以 CH测试后端云原生容器编排可观测性docker-selenium 浏览器镜像多标签发布机制以 Selenium Grid 4.32.0 与 Chrome 105 为例docker selenium 浏览器镜像多标签发布机制以 Selenium Grid 4.32.0 与 Chrome 105 为例 本篇技术指南围绕 doc测试后端云原生容器编排可观测性上一篇RxDB SharedWorker RxStorage 实战指南让多个标签页共享同一个数据库进程下一篇Indico完整会议组织工作流解析征稿、评审、注册一站式服务创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

k3d 入门指南:在 Docker 中一键运行 CNCF k3s 集群

k3d 入门指南:在 Docker 中一键运行 CNCF k3s 集群

云原生容器编排 【免费下载链接】k3d Little helper to run CNCFs k3s in Docker 项目地址: https://gitcode.com/gh_mirrors/k3/k3d 点击查看 免费下载 k3d 是围绕 Rancher Labs 的轻量级 Kubernetes 发行版 k3s 构建的 Docker 封装工具,它把 k3s 集群…

2026/10/8 7:48:58 阅读更多 →
k0s 节点本地负载均衡(NLLB)完全指南:为无外部负载均衡的高可用控制平面构建内部韧性

k0s 节点本地负载均衡(NLLB)完全指南:为无外部负载均衡的高可用控制平面构建内部韧性

云原生容器编排边缘计算 【免费下载链接】k0s k0s - The Zero Friction Kubernetes 项目地址: https://gitcode.com/gh_mirrors/k0/k0s 点击查看 免费下载 k0s 的 Node-local load balancing(节点本地负载均衡,下文简称 NLLB)为没…

2026/10/9 9:54:30 阅读更多 →
docker-selenium 4.32.0 发布档案解读:Firefox 133.0.3 镜像的多标签生成与使用全流程

docker-selenium 4.32.0 发布档案解读:Firefox 133.0.3 镜像的多标签生成与使用全流程

测试后端云原生容器编排可观测性 【免费下载链接】docker-selenium Provides 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.…

2026/10/9 9:54:57 阅读更多 →

最新新闻

智能客服系统落地指南:从FAQ到RAG的工程实践与避坑

智能客服系统落地指南:从FAQ到RAG的工程实践与避坑

简介:面向政府、企业及金融机构客服系统规划者、产品经理和技术人员的智能客服系统解决方案PDF文档,重点解决移动互联网时代全渠道服务响应慢、知识库构建周期长、人工客服成本高等难题。内容基于中科汇联三千余家行业客户的交付运维经验,系统…

2026/10/9 9:55:18 阅读更多 →
2024五一数学建模C题:基于LSTM与XGBoost的用户行为预测建模实战

2024五一数学建模C题:基于LSTM与XGBoost的用户行为预测建模实战

简介:这是一份2025年五一数学建模竞赛C题的完整参赛作品,内容聚焦社交媒体平台用户行为预测与内容推荐优化。作者基于2024年7月中旬的用户与博主互动数据,系统求解四个子问题:用LSTM模型预测博主新增关注数;用LSTM结合…

2026/10/9 9:55:18 阅读更多 →
用友T6凭证批量导入全流程:解决辅助核算导入失败问题

用友T6凭证批量导入全流程:解决辅助核算导入失败问题

简介:本资源是一份面向企业财务信息化人员、用友T6系统实施顾问及ERP二次开发工程师的实操型技术指南,聚焦解决多源电子凭证批量导入难题,尤其适用于需处理带供应商往来等辅助核算的复杂凭证场景。文档以完整流程为主线,覆盖基础数…

2026/10/9 9:55:18 阅读更多 →
k-means-LSTM组合预测:多输入多输出时序建模实战

k-means-LSTM组合预测:多输入多输出时序建模实战

简介:本资源是一份面向具备Python编程与机器学习基础的研发人员、数据科学家及进阶学习者的时间序列预测实战项目,聚焦k均值聚类与LSTM深度结合的多输入多输出组合建模方法,有效提升能源管理、气象预测、金融分析等场景下的预测精度与鲁棒性。…

2026/10/9 9:55:18 阅读更多 →
符号回归实战:用遗传编程从噪声数据中发现可解释数学公式

符号回归实战:用遗传编程从噪声数据中发现可解释数学公式

简介:本资源是一份面向计算机科学研究人员、机器学习爱好者及进化计算初学者的符号回归实践指南,聚焦遗传编程(GP)在非线性数学表达式发现与建模中的系统实现与优化。内容涵盖GP基础框架搭建、精英主义策略、自定义遗传算子等增强…

2026/10/9 9:55:18 阅读更多 →
php正则表达式学习笔记

php正则表达式学习笔记

前言 先说一件容易混淆的事:PHP 里的「正则表达式」其实分两套历史,一套是已经消失的 POSIX 扩展,一套是现在唯一在用的 PCRE。POSIX 那套函数(ereg()、eregi()、ereg_replace()、eregi_replace()、split()、spliti()、sql_regcas…

2026/10/9 9:54:17 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 10:10:36 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →