资讯动态

docker-selenium 版本标签生成全解:以 4.31.0 + Chrome 128 发布记录为范例

发布时间:2026/10/7 2:02:51 来源:尧图企业网站定制
测试后端云原生容器编排可观测性【免费下载链接】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 仓库归档的 4.31.0 发布记录Chrome 128 为核心逐行剖析 Selenium Grid 浏览器镜像发布时的标签生成与推送全流程从一条发布命令出发解读其 7 个命令行参数、版本探测与短版本号推导规则、10 个 node-chrome 与 standalone-chrome 标签的命名矩阵以及 changelog 记录在整个版本管理体系中的角色。读完本文你将掌握如何读懂任意一条浏览器镜像发布日志、理解 selenium/node-chrome 与 selenium/standalone-chrome 各标签段的含义并能在自己的发布脚本中复刻这套约定。一条 changelog 记录承载了什么该记录本质上是发布流水线的一次真实运行输出完整保存了 4.31.0 这个 Grid 版本、构建日期 20250414 与 Chrome 128 组合下产生的全部镜像标签。它的信息密度很高主要包含四类数据触发命令./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true版本快照Selenium Grid4.31.0-20250414、Chrome128.0.6613.137短版本128.0、ChromeDriver128.0.6613.137短版本128.0产物清单为selenium/node-chrome与selenium/standalone-chrome两个镜像各生成 10 个标签历史归档身份该文件位于 CHANGELOG/archived/4.31.0/说明 4.31.0 已不再是当前最新版本已被归档流程移入archived目录这组数据同时被两个系统消费面向用户的版本矩阵文档CHANGELOG/README.md以及面向发布说明自动化的解析脚本见后文changelog 在发布体系中的角色一节。触发命令的 7 个参数命令./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false chrome true对应脚本 tag_and_push_browser_images.sh 开头的位置参数定义位置参数本例取值含义与默认值$1VERSION4.31.0Selenium Grid 主版本号$2BUILD_DATE20250414构建日期YYYYMMDD$3NAMESPACEselenium镜像命名空间脚本中NAMESPACE${NAME:-selenium}即优先使用环境变量NAME$4PUSH_IMAGEfalse是否执行docker push默认false本例为 false说明只打标签不推送推送由后续 CI 步骤完成$5BROWSERchrome浏览器类型case分支支持 chrome / chromium / edge / firefox / chrome-for-testing$6RELEASE_OLD_VERSIONtrue是否同时生成旧版本兼容标签默认false$7PLATFORM未传平台参数默认linux/amd64用于跨平台探测浏览器版本在 Makefile 中这一调用被封装为目标 tag_and_push_chrome_images./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) chrome $(RELEASE_OLD_VERSION)而 tag_and_push_browser_images 目标则会依次触发 chrome、chrome-for-testing、chromium、firefox、edge 五个浏览器的全量标签流程。版本号是如何被探测出来的脚本并非硬编码版本号而是在运行时从已构建好的镜像里实时读取。对于 chrome 分支CHROME_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})即启动selenium/node-chrome:4.31.0-20250414容器分别执行google-chrome --version与chromedriver --version再用awk提取版本字段。这也是记录中Chrome version - 128.0.6613.137、ChromeDriver version - 128.0.6613.137两行的来源。随后short_version()函数把完整版本号截取为主版本.次版本function short_version() { local __long_version$1 local __version_split(${__long_version//./ }) echo ${__version_split[0]}.${__version_split[1]} }128.0.6613.137按.拆分为数组后取前两段得到128.0。短版本号的价值在于它既保留了主版本信息、便于人类快速识别又不会因 patch 版本频繁变化而生成过多标签是稳定的引用点。10 个标签的三层命名矩阵脚本用数组CHROME_TAGS拼出标签核心格式为ChromeVersion-chromedriver-ChromeDriverVersion-grid-GridVersion-BuildDate本例实际生成的 node-chrome / standalone-chrome 标签两侧一一对应可分为三组第一组完整版本 三级限定共 6 个标签说明128.0.6613.137-chromedriver-128.0.6613.137-grid-4.31.0-20250414浏览器 驱动 Grid 日期全限定128.0.6613.137-chromedriver-128.0.6613.137-20250414浏览器 驱动 日期128.0.6613.137-20250414浏览器 日期128.0-chromedriver-128.0-grid-4.31.0-20250414短版本版的全限定标签128.0-chromedriver-128.0-20250414短版本的浏览器 驱动 日期128.0-20250414短版本的浏览器 日期第二组RELEASE_OLD_VERSIONfalse 时追加的 4 个浮动标签本例未生成若第 6 个参数为false即这不是给旧版本重发还会追加不带日期、可在新 patch 版本上持续更新的浮动标签128.0.6613.137-chromedriver-128.0.6613.137128.0.6613.137128.0-chromedriver-128.0128.0本例RELEASE_OLD_VERSIONtrue因此只生成带日期的 6 个标签。从脚本逻辑看这组浮动标签用于当前活跃版本的稳定引用当某版本进入归档期后就通过RELEASE_OLD_VERSIONtrue关闭它们避免标签被后续构建意外覆盖。第三组retag 的二次分发对每个标签脚本调用retag node-chrome tag与retag standalone-chrome tagtag_and_push_browser_images.sh将同一标签同时应用到 Node 与 Standalone 两种形态。retag()内部执行docker tag并在PUSH_IMAGEtrue时追加docker push此外还支持PROMOTE_TAGStrue模式——此时源镜像不在本地改用docker buildx imagetools create在镜像仓库间直接复制 manifest从而保留多架构索引参见脚本头部的注释说明。标签与镜像形态的对应关系这套标签约定与官方镜像文档 docs/docker-hub/node-chrome.md 中的 Tagging Convention 完全一致selenium/node-chrome-Major.Minor.Patch-YYYYMMDD selenium/node-chrome-browserVersion-browserDriver-browserDriverVersion-Major.Minor.Patch-YYYYMMDD文档给出的完整标签示例即本文第一组的全限定形态BrowserMajor.BrowserMinor-chromedriver-DriverMajor.DriverMinor-grid-Major.Minor.Patch-YYYYMMDD。这意味着用户可以从标签名反推出镜像内的全部软件版本例如selenium/node-chrome:128.0-chromedriver-128.0-grid-4.31.0-20250414表示Chrome 128.0、ChromeDriver 128.0、Selenium Grid 4.31.0、构建于 20250414。在 Node 形态下该镜像作为 Selenium Grid 的一个节点使用运行方式为详见 docs/docker-hub/node-chrome.mddocker 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:128.0-chromedriver-128.0-grid-4.31.0-20250414浏览器容器务必使用--shm-size2g以使用宿主机共享内存。Standalone 形态则把 Grid 与浏览器打包在单容器内适合快速验证。changelog 在发布体系中的角色这类chrome_版本号.md文件并非孤立的发布日志而是被仓库的版本管理体系程序化消费的数据源版本矩阵CHANGELOG/README.md 以Grid 版本 × 浏览器版本二维矩阵列出每个可用镜像标签每个 ✓ 链接到对应的 changelog 文件且最新版本排在最前。该 README 由 CHANGELOG/generate-matrix-readme.py 自动生成——它扫描当前目录与archived目录按([\w-])_(\d)\.md正则解析文件名并把旧版本目录移入archived这正是 4.31.0 位于 archived 的原因。Docker Hub 描述测试 tests/dockerhub_description/test_resolve_versions.py 验证了解析器resolve_versions.py的行为——它从 changelog 中提取Selenium Grid version行与短版本号用于生成 Docker Hub 页面上的版本说明测试用例甚至刻意验证了chrome_128.md这类前缀不会与chrome-for-testing_128.md混淆。归档语义generate-matrix-readme.py 只保留最新一个版本目录在当前层其余全部移入archived/因此归档目录中的记录是历史发布快照其标签在 Registry 中依然存在、可继续拉取但不再参与矩阵的最新版本展示。适用前提与阅读注意事项需要明确的是本记录是4.31.0 时代构建日期 20250414的发布产物。当前仓库最新版本为 4.48.0如 CHANGELOG/4.48.0/chrome-for-testing_152.md 所示Chrome 已推进到 152.0因此 4.31.0 Chrome 128 属于历史组合适合作为理解标签约定的范例而非当前推荐版本。选用镜像时请以 CHANGELOG/README.md 最新矩阵为准。该记录没有执行docker pushPUSH_IMAGEfalse实际发布由 CI 的 deploy 流程在验证通过后完成。changelog 只记录该组合下生成了哪些标签并不保证每个 Grid × 浏览器组合都被完整测试过——CHANGELOG/README.md 明确说明并未对每种组合做全量测试用户需按自己的测试需求评估决策。小结通过chrome_128.md这条记录可以完整还原 docker-selenium 的浏览器镜像发布链路先构建node-chrome:版本-日期基础镜像 → 用docker run实时探测 Chrome/ChromeDriver 版本 →short_version生成短版本 → 拼装 6 或 10 个分层标签 → 通过retag同时应用到 node 与 standalone 两种形态 → 按需docker push→ 将输出沉淀为 changelog 文件供版本矩阵与 Docker Hub 描述消费。这套版本信息即文件名、标签语义即版本组合的约定让用户仅凭镜像标签即可精确定位所需的浏览器、驱动与 Grid 组合也是 docker-selenium 实现大规模浏览器自动化时的版本可控性根基。赞分享测试后端云原生容器编排可观测性【免费下载链接】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 132 Selenium Grid 4.28.1 发布记录为例docker selenium 浏览器版本标签全解析以 Chrome 132 Selenium Grid 4.28.1 发布记录为例 本篇技术指南以 do测试后端云原生容器编排可观测性docker-selenium 浏览器镜像标签发布机制解析以 4.31.0 的 Chrome 105 发布记录为例docker selenium 浏览器镜像标签发布机制解析以 4.31.0 的 Chrome 105 发布记录为例 本篇技术指南以 docker seleni测试后端云原生容器编排可观测性Feathers Channels实战教程如何结合Socket.io从零构建实时聊天应用Feathers Channels实战教程如何结合Socket.io从零构建实时聊天应用 ! Feathers 小鸟插画展示用 Feathers 框架开发实测试后端云原生容器编排可观测性上一篇终极指南如何利用android-async-http实现GZIP压缩优化让请求速度提升300%下一篇如何十分钟跑起 OpenMetadataDocker 本地部署完全指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

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

免费获取报价 →
↑