资讯动态

docker-selenium 浏览器镜像 Tag 命名规范与发布流程:以 Chrome 117.0.5938.149 为例

发布时间:2026/10/4 11:21:22 来源:尧图企业网站定制
测试后端云原生容器编排可观测性【免费下载链接】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 归档目录中的一份真实发布记录Selenium Grid 4.28.1 × Chrome 117 镜像打标输出为线索结合仓库根目录的 tag_and_push_browser_images.sh 脚本源码与 Makefile 中的相关目标系统讲解浏览器镜像版本标签Tag体系的生成原理与命名规范。读完本文你将理解selenium/node-chrome与selenium/standalone-chrome各标签的构成含义掌握如何按需固定浏览器版本、如何读懂发布打标日志以及如何在 Docker Compose 与 Selenium Grid 测试中正确引用这些镜像标签。一次真实的 Chrome 117 发布打标记录在 CHANGELOG/archived/4.28.1/chrome_117.md 中完整记录了一次针对 Chrome 117 镜像的发布打标过程。其内容是一段由tag_and_push_browser_images.sh脚本产生的真实执行日志./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false chrome true Tagging images for browser chrome, version 4.28.1, build date 20250202, namespace selenium Selenium Grid version - 4.28.1-20250202 Chrome version - 117.0.5938.149 Short Chrome version - 117.0 ChromeDriver version - 117.0.5938.149 Short ChromeDriver version - 117.0 Tagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.28.1-20250202 Tagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-grid-4.28.1-20250202 Tagged selenium/node-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20250202 Tagged selenium/standalone-chrome:117.0.5938.149-chromedriver-117.0.5938.149-20250202 Tagged selenium/node-chrome:117.0.5938.149-20250202 Tagged selenium/standalone-chrome:117.0.5938.149-20250202 Tagged selenium/node-chrome:117.0-chromedriver-117.0-grid-4.28.1-20250202 Tagged selenium/standalone-chrome:117.0-chromedriver-117.0-grid-4.28.1-20250202 Tagged selenium/node-chrome:117.0-chromedriver-117.0-20250202 Tagged selenium/standalone-chrome:117.0-chromedriver-117.0-20250202 Tagged selenium/node-chrome:117.0-20250202 Tagged selenium/standalone-chrome:117.0-20250202逐段解读这段日志可以还原出整个发布流程的关键信息命令语义脚本接收 7 个位置参数。4.28.1是 Selenium Grid 版本VERSION20250202是构建日期BUILD_DATEselenium是镜像命名空间NAMESPACEfalse表示本次仅打标、不推送PUSH_IMAGEchrome是目标浏览器BROWSER末尾的true是 RELEASE_OLD_VERSION 标记。Grid 版本标识Selenium Grid version - 4.28.1-20250202即脚本内部组合出的TAG_VERSION格式为VERSION-BUILD_DATE。浏览器与驱动版本Chrome version - 117.0.5938.149、ChromeDriver version - 117.0.5938.149。在这份记录中Chrome 与 ChromeDriver 的版本号完全一致二者随后被各自截取前两段得到短版本117.0。打标结果共输出 12 行Tagged即node-chrome与standalone-chrome两个镜像、各 6 个标签。因为命令中 RELEASE_OLD_VERSION 为true脚本跳过了 4 个不带构建日期的裸版本标签详见下文。需要说明的是这份记录属于 Selenium Grid 4.28.1 的归档发布。仓库 CHANGELOG/README.md 中的版本矩阵显示最新 Grid 版本如 4.48.0的 chrome_117.md 记录了完全相同的打标结构与输出格式说明这套标签命名规则从 4.28.1 一直沿用至今对当前版本依然有效。打标脚本与命令行参数说明产生上述日志的脚本位于仓库根目录的 tag_and_push_browser_images.sh它负责为已构建好的浏览器镜像批量打上多种语义的标签。脚本共接收 7 个位置参数参数脚本变量含义本记录中的值默认值$1VERSIONSelenium Grid 版本号4.28.1无$2BUILD_DATE镜像构建日期YYYYMMDD20250202无$3NAMESPACE镜像命名空间seleniumselenium$4PUSH_IMAGE是否在打标后执行docker pushfalsefalse$5BROWSER目标浏览器类型chrome无$6RELEASE_OLD_VERSION是否为旧版本打标truefalse$7PLATFORM目标平台未传linux/amd64其中PUSH_IMAGE、RELEASE_OLD_VERSION、PLATFORM在脚本中均带默认值可从 tag_and_push_browser_images.sh 的参数声明行看到。NAMESPACE变量还有一个细节脚本第 16 行使用NAME环境变量作为兜底NAMESPACE${NAME:-selenium}因此也可以通过设置NAME环境变量覆盖命名空间。在正常发布流程中该脚本通常不是被手动直接调用的而是经由 Makefile 中的tag_and_push_chrome_images目标间接执行tag_and_push_chrome_images: ./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) chrome $(RELEASE_OLD_VERSION)Makefile 还提供了同模式的tag_and_push_chrome-for-testing_images、tag_and_push_chromium_images、tag_and_push_edge_images、tag_and_push_firefox_images目标对应脚本内case ${BROWSER}分派的五个浏览器分支chrome、chromium、edge、firefox、chrome-for-testing每个分支的标签命名逻辑彼此对称。六类核心标签的命名规范以 chrome 分支为例见 tag_and_push_browser_images.sh脚本会基于四个版本变量拼接标签${CHROME_VERSION}完整 Chrome 版本如117.0.5938.149${CHROMEDRIVER_VERSION}完整 ChromeDriver 版本${CHROME_SHORT_VERSION}/${CHROMEDRIVER_SHORT_VERSION}取前两段的主次版本如117.0${TAG_VERSION}VERSION-BUILD_DATE如4.28.1-20250202${BUILD_DATE}构建日期如20250202无论 RELEASE_OLD_VERSION 取值如何脚本总会生成以下 6 类标签依次对应记录中每行Tagged输出标签格式本记录中的实际示例语义${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}-grid-${TAG_VERSION}117.0.5938.149-chromedriver-117.0.5938.149-grid-4.28.1-20250202完整锁定浏览器、驱动与 Grid 三者的精确版本${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}-${BUILD_DATE}117.0.5938.149-chromedriver-117.0.5938.149-20250202锁定完整浏览器与驱动版本附构建日期${CHROME_VERSION}-${BUILD_DATE}117.0.5938.149-20250202锁定完整浏览器版本附构建日期${CHROME_SHORT_VERSION}-chromedriver-${CHROMEDRIVER_SHORT_VERSION}-grid-${TAG_VERSION}117.0-chromedriver-117.0-grid-4.28.1-20250202主次版本级别的浏览器、驱动与 Grid 组合${CHROME_SHORT_VERSION}-chromedriver-${CHROMEDRIVER_SHORT_VERSION}-${BUILD_DATE}117.0-chromedriver-117.0-20250202主次版本级别的浏览器与驱动组合附构建日期${CHROME_SHORT_VERSION}-${BUILD_DATE}117.0-20250202主次版本级别的浏览器版本附构建日期此外当RELEASE_OLD_VERSION为默认值false时即发布当前版本脚本还会追加 4 个不带构建日期的标签${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION}、${CHROME_VERSION}、${CHROME_SHORT_VERSION}-chromedriver-${CHROMEDRIVER_SHORT_VERSION}、${CHROME_SHORT_VERSION}。这类裸版本标签用于给用户提供一个稳定、简短、可长期引用的标识。而本记录中 RELEASE_OLD_VERSION 为true脚本据此跳过了这 4 个标签只保留带日期或 grid 信息的 6 个标签——从代码逻辑看tag_and_push_browser_images.sh这是为了避免给历史版本打上无日期标签后用户误以为该标签指向当前发布流。版本探测与打标底层实现这份日志中出现的版本号并非脚本硬编码而是脚本在运行时从镜像内部实际探测出来的整个过程位于 chrome 分支的 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})脚本通过docker run临时启动已经构建好的node-chrome:4.28.1-20250202镜像分别在容器内执行google-chrome --version与chromedriver --version再用awk截取版本号字段。这保证了标签永远与镜像内实际安装的二进制版本一致而不是依赖构建参数中的声明。镜像内 Chrome 的安装与版本落盘由 NodeChrome/Dockerfile 的ARG CHROME_VERSIONgoogle-chrome-stable及 NodeChrome/Dockerfile 中写入/opt/selenium/browsers/chrome/version的逻辑负责脚本侧只是消费其真实结果。短版本由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]} }它按.切分完整版本号并只输出前两段因此117.0.5938.149→117.0。最终的每个标签都经由retag()函数落地tag_and_push_browser_images.sh其行为分三种路径常规路径docker tag在本地为镜像附加标签若PUSH_IMAGEtrue随后执行docker push发布推广路径PROMOTE_TAGStrue不经过本地镜像存储而是用docker buildx imagetools create直接在 registry 的 manifest index 层面为已发布镜像补标签从而完整保留多架构 manifest当设置了PROMOTE_GHCR_NAMESPACE时retag会在同一调用中同时把标签镜像到 GHCR。从源码结构看PROMOTE_TAGS机制是当前 CI 发布流程先测试后推广发布的一部分与 Makefile 中promote_release_images等目标的registry 到 registry 复制、不重建镜像思路一致。在 Selenium Grid 测试中如何选用这些标签上述标签的直接消费方是测试编排。最典型的方式是把镜像标签写进 Docker Compose 的image字段例如仓库中的 docker-compose-v2.ymlservices: chrome: image: selenium/node-chrome:4.48.0-20260905 ...由此可以将本文的标签体系对应到实际使用场景固定浏览器版本做兼容性回归当被测站点只在 Chrome 117 上表现稳定、或团队正在跟踪 117 系列的行为差异时可直接docker pull selenium/node-chrome:117.0.5938.149-20250202或 standalone 版本把浏览器钉死在117.0.5938.149这一精确补丁版本上避免上游 Chrome 自动升级引入不稳定因素。锁定浏览器与 Grid 双版本...-grid-4.28.1-20250202这类标签同时锁定了 Grid 组件与浏览器/驱动版本适合需要可复现的整套 Grid 环境时使用这是 6 类标签中信息最完整、精度最高的一种。按主次版本粗略跟随补丁更新117.0-20250202或裸版本117.0只约束大版本与次版本拉取时若仓库后续推送了同主次版本的新补丁镜像标签会指向新镜像适合希望跟随 117 系列、不关心补丁号的自动化环境。跨浏览器矩阵测试nodeNode 形态与 standaloneStandalone 形态两类镜像的标签完全成对出现记录中每行都是 node-chrome 与 standalone-chrome 相邻前者用于注册进 Grid 的分布式部署后者用于单容器独立运行配合 CHANGELOG/README.md 的版本矩阵可以快速找到某个 Grid 版本 × 某个浏览器版本是否发布过对应镜像。需要提醒的是CHANGELOG/README.md 明确指出项目并未对每一种 Grid 与浏览器版本的组合做完整的功能回归测试因此当组合较新或较特殊时建议用户先在自己团队的用例上做冒烟验证再决定是否大规模接入。归档记录在版本矩阵中的定位CHANGELOG/README.md 以Grid 版本 × 浏览器版本矩阵的形式把每个 changelog 文档组织为交叉点上的一个链接行是 Grid 版本最新版在上历史版本进入 Archived 区列是浏览器大版本Chrome、Chrome for Testing、Edge、Firefox 各自成表。本文所依据的 chrome_117.md 正是 4.28.1 行的 Chrome 117 列对应的发布记录。对于正在维护旧版本测试环境的团队这种归档策略的价值在于即使当前 Grid 版本早已迭代依然可以通过归档目录查到历史版本对应浏览器镜像的精确标签从而在旧基础设施上还原出与当时发布完全一致的可复现环境而当前版本的同名记录如 4.48.0/chrome_117.md则说明只要该浏览器版本仍在发布矩阵中相同的标签命名规则会持续生效迁移到新 Grid 版本时无需学习新的标签语法。综上docker-selenium 的浏览器镜像标签体系可以概括为一句话以浏览器版本 × 驱动版本 × Grid 版本 × 构建日期为维度自动组合出多级精度的标签同时向 node 与 standalone 两类镜像成对发布。理解了这套规范无论是读发布日志、选固定版本还是写自己的镜像发布脚本都能做到心中有数。赞分享测试后端云原生容器编排可观测性【免费下载链接】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 134 发布日志与 tag_and_push_browser_images.sh 为例docker selenium 浏览器镜像打标签全流程解析以 Chrome 134 发布日志与 tag_and_push_browser_images.sh测试后端云原生容器编排可观测性docker-selenium 4.48.0 发布 Firefox 130 镜像标签命名规则与浏览器镜像发布流程解析docker selenium 4.48.0 发布 Firefox 130 镜像标签命名规则与浏览器镜像发布流程解析 本篇技术解读围绕 docker sele测试后端云原生容器编排可观测性docker-selenium 浏览器镜像版本矩阵与标签约定以 Chrome 131 与 Selenium Grid 4.28.1 发布为例docker selenium 浏览器镜像版本矩阵与标签约定以 Chrome 131 与 Selenium Grid 4.28.1 发布为例 本文以 CHAN测试后端云原生容器编排可观测性上一篇如何用Files文件管理器5分钟搞定GitHub仓库管理下一篇从Horst3180到Arc-DesignArc Theme的发展历程与未来展望创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑