资讯详情

资讯详情

Selenium Docker 镜像版本标签体系深度解析:以 Grid 4.33.0 × Chrome 114 发布记录为例

测试后端云原生容器编排可观测性【免费下载链接】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.33.0/chrome_114.md 这份真实发布记录逐层拆解 Selenium 官方 Docker 镜像的版本标签命名规则、生成脚本与发布流水线并给出使用者如何利用这套标签精确固定浏览器版本的实战方案。读完本文你将能读懂仓库中任意一份chrome_xxx.md发布日志并能根据标签语义精准挑选selenium/node-chrome与selenium/standalone-chrome镜像。一、这份记录是什么一次 Chrome 114 镜像发布打标签的全过程CHANGELOG/archived/4.33.0/chrome_114.md是 Selenium Grid 4.33.0 版本发布时为 Chrome 114 浏览器镜像执行打标签与推送后留下的完整输出。它忠实记录了tag_and_push_browser_images.sh脚本的一次真实运行结果./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true Tagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium Selenium Grid version - 4.33.0-20250606 Chrome version - 114.0.5735.198 Short Chrome version - 114.0 ChromeDriver version - 114.0.5735.90 Short ChromeDriver version - 114.0 Tagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.33.0-20250606 Tagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.33.0-20250606 Tagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20250606 Tagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-20250606 Tagged selenium/node-chrome:114.0.5735.198-20250606 Tagged selenium/standalone-chrome:114.0.5735.198-20250606 Tagged selenium/node-chrome:114.0-chromedriver-114.0-grid-4.33.0-20250606 Tagged selenium/standalone-chrome:114.0-chromedriver-114.0-grid-4.33.0-20250606 Tagged selenium/node-chrome:114.0-chromedriver-114.0-20250606 Tagged selenium/standalone-chrome:114.0-chromedriver-114.0-20250606 Tagged selenium/node-chrome:114.0-20250606 Tagged selenium/standalone-chrome:114.0-20250606 Tagged selenium/node-chrome:114.0.5735.198-chromedriver-114.0.5735.90 Tagged selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90 Tagged selenium/node-chrome:114.0.5735.198 Tagged selenium/standalone-chrome:114.0.5735.198 Tagged selenium/node-chrome:114.0-chromedriver-114.0 Tagged selenium/standalone-chrome:114.0-chromedriver-114.0 Tagged selenium/node-chrome:114.0 Tagged selenium/standalone-chrome:114.0从输出中可以提取出本次发布的关键事实维度值Selenium Grid 版本含构建日期4.33.0-20250606Chrome 完整版本114.0.5735.198Chrome 短版本主版本号114.0ChromeDriver 完整版本114.0.5735.90ChromeDriver 短版本114.0涉及的镜像名selenium/node-chrome、selenium/standalone-chrome共生成标签数每个镜像 10 个合计 20 个需要注意这里是 4.33.0 时期的归档记录属于历史快照仓库CHANGELOG/目录按版本号归档CHANGELOG/README.md 中 Archived Grid Versions 表格最新的发布记录位于 CHANGELOG/4.48.0 目录但标签生成机制自始至终保持一致。二、标签命名规则逐条拆解一份标签一个用途同一份镜像内容同一批构建产物会被打上多个语义不同的标签目的正是让使用者在不同场景下都能按需取用。结合tag_and_push_browser_images.sh中CHROME_TAGS数组的生成逻辑这 10 个标签可以分成两类第一类绑定 Grid 版本与构建日期的发布专属标签6 个标签格式含义典型使用场景114.0.5735.198-chromedriver-114.0.5735.90-grid-4.33.0-20250606浏览器完整版 驱动完整版 Grid 版本 构建日期信息最全精确复现某次发布、排障比对114.0.5735.198-chromedriver-114.0.5735.90-20250606浏览器完整版 驱动完整版 构建日期锁定某一构建日的浏览器/驱动组合114.0.5735.198-20250606浏览器完整版 构建日期锁定某构建日的浏览器版本114.0-chromedriver-114.0-grid-4.33.0-20250606短版本版的全信息标签按主版本号快速定位114.0-chromedriver-114.0-20250606短浏览器版 短驱动版 构建日期固定主版本且在意构建时间114.0-20250606短浏览器版 构建日期固定主版本并区分构建批次第二类不带构建日期的滚动便捷标签4 个当RELEASE_OLD_VERSION参数为false时脚本还会追加 4 个不带构建日期的标签例如114.0.5735.198-chromedriver-114.0.5735.90完整浏览器 完整驱动114.0.5735.198仅完整浏览器版本114.0-chromedriver-114.0短浏览器 短驱动114.0仅短浏览器版本这类标签去掉了grid-与日期后缀是最贴近日常使用的引用方式——例如docker pull selenium/node-chrome:114.0即可拿到当前 114 主版本的镜像。但要注意这类标签在后续发布中会被新构建覆盖属于移动指针而非不可变快照追求可复现时应优先使用带构建日期的第一类标签。node 与 standalone 成对出现每一组标签都会同时打到两个镜像上selenium/node-chrome仅浏览器节点供 Selenium Grid 集群使用与selenium/standalone-chrome浏览器 Grid 一体化可独立运行。这正是 docker-selenium 一贯的镜像分层设计Node 镜像聚焦于执行测试Standalone 镜像则把服务端与浏览器打包在一起便于单机快速验证。三、脚本如何算出这些版本号源码级拆解tag_and_push_browser_images.sh是整个发布链路的关键脚本仓库根目录它在运行时接受以下参数位置参数说明默认值1VERSIONSelenium Grid 版本如4.33.0无2BUILD_DATE构建日期如20250606无3NAMESPACE镜像命名空间如selenium无4PUSH_IMAGE是否推送镜像到 registryfalse5BROWSER浏览器类型chrome/chromium/edge/firefox/chrome-for-testing无6RELEASE_OLD_VERSION是否为旧版本补发标签false7PLATFORM目标平台如linux/amd64linux/amd64另有环境变量PROMOTE_TAGS默认false与PROMOTE_GHCR_NAMESPACE默认空控制镜像提升promote模式详见下一节。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})google-chrome --version的输出形如Google Chrome 114.0.5735.198awk {print $3}取到第三列即版本号chromedriver --version输出形如ChromeDriver 114.0.5735.90 (...)awk {print $2}取版本号。这一设计保证了标签永远与镜像内真实二进制版本一致不会出现标签版本与实际版本错位。short_version从完整版本到主版本function short_version() { local __long_version$1 local __version_split(${__long_version//./ }) echo ${__version_split[0]}.${__version_split[1]} }该函数以.为分隔符切分版本号仅保留前两段从而把114.0.5735.198收敛为114.0。这正是短版本标签的来源让使用者不必记忆冗长的完整版本号。标签数组的组装CHROME_TAGS数组按固定模板组装出 6 个基本标签并在RELEASE_OLD_VERSIONfalse时追加 4 个便捷标签即上一节的两类标签随后循环对node-chrome与standalone-chrome两个镜像逐一调用retagfor chrome_tag in ${CHROME_TAGS[]}; do retag node-chrome ${chrome_tag} retag standalone-chrome ${chrome_tag} done脚本中为不同浏览器chromium、edge、firefox、chrome-for-testing提供了同构的case分支只是版本探测命令与镜像名不同如 firefox 用firefox --version | awk {print $3}与geckodriver --version | awk NR1{print $2}。可见这套标签机制是整个仓库所有浏览器镜像的通用发布协议。四、retag 的三种执行路径本地打标、推送与 registry 间提升每次Tagged ...输出都来自retag()函数tag_and_push_browser_images.sh 第 31-51 行它根据上下文选择三种执行路径路径一本地打标签PROMOTE_TAGSfalse 的默认路径docker tag ${__source} ${NAMESPACE}/${__image}:${__tag} if [ ${PUSH_IMAGE} true ]; then docker push ${NAMESPACE}/${__image}:${__tag} fi先在本地为源镜像${TAG_VERSION}格式追加新标签PUSH_IMAGEtrue时再逐个推送。发布记录中命令的第四个参数是falseselenium false chrome true中的false说明当时只完成本地打标推送由流水线后续步骤统一执行。路径二registry 间镜像提升PROMOTE_TAGStrue脚本头部注释解释了该模式的背景当 release 直接发布已在测试中验证过的镜像而不是重新构建时由deploy.yml通过PROMOTE_TAGS触发本地根本没有源镜像docker tag无法工作且docker pull只能拉回运行机架构的单架构镜像会让多架构标签退化为单架构。此时改用 buildx 的 registry-to-registry 操作docker buildx imagetools create --tag ${NAMESPACE}/${__image}:${__tag} ${__source}imagetools create直接操作 manifest index可以在不落地本地镜像的情况下跨 registry 复制多架构标签。路径三同步镜像到 GHCRPROMOTE_GHCR_NAMESPACE 非空若设置了PROMOTE_GHCR_NAMESPACE同一调用内还会追加一条指向 GHCR 命名空间的--tag实现一次调用、双 registry 同步。脚本注释特别说明GHCR 镜像同步不能在之后用 Makefile 的tag_and_push_browser_images_ghcr补做因为该目标依赖docker images发现本地镜像而提升路径下本地存储是空的。五、在发布流水线中的位置Makefile 目标与 GHCR 同步tag_and_push_browser_images.sh不是孤立脚本而是通过 Makefile第 781-808 行接入完整发布流程tag_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)组合目标tag_and_push_browser_images一次触发五种浏览器的全部打标与推送各浏览器子目标把VERSION、BUILD_DATE、NAMESPACE、PUSH_IMAGE、RELEASE_OLD_VERSION等 Makefile 变量透传给脚本tag_and_push_browser_images_ghcr目标则遍历本地镜像标签通过docker buildx imagetools create --tag ${GHCR_NAMESPACE}/... docker.io/${NAMESPACE}/...将 Docker Hub 镜像镜像到 GHCR。这套 Makefile 封装解释了为什么发布记录中的命令行能直接写成./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true——它是流水线实际执行的最小单元参数与 Makefile 变量一一对应。六、作为使用者如何利用这套标签固定浏览器版本理解了标签语义即可在测试与 CI 中精准选型。以下是按需求场景给出的选标签建议# 需要与某个 Grid 版本精确绑定的不可变快照推荐用于 CI 复现 docker pull selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90-grid-4.33.0-20250606 # 只需要固定主版本接受滚动更新 docker pull selenium/node-chrome:114.0 # 需要固定完整浏览器版本 docker pull selenium/node-chrome:114.0.5735.198 # 需要同时固定浏览器与驱动的完整版本 docker pull selenium/standalone-chrome:114.0.5735.198-chromedriver-114.0.5735.90查询哪个 Grid 版本下有哪些浏览器版本可用直接查阅 CHANGELOG/README.md 的版本矩阵每行是一个 Grid 版本每列是一个浏览器主版本号交叉单元格的 ✓ 链接指向对应的chrome_xxx.md发布记录如 4.33.0 行 → archived/4.33.0/chrome_114.md。README 同时说明并非所有 Grid × 浏览器组合都经过完整测试使用者需按自身测试要求评估取舍。若要理解标签背后的二进制从何而来可追溯 NodeChrome/Dockerfile构建阶段通过CHROME_VERSION默认google-chrome-stable与CHROME_DRIVER_VERSION两个 ARG 分别控制浏览器与驱动安装并在构建时把实际版本写入/opt/selenium/browsers/chrome/version——发布脚本读取的正是这份真实产物版本。七、与其他发布记录的对照机制的一致性验证仓库中每个版本目录下都有同构的发布记录例如最新目录 CHANGELOG/4.48.0/chrome-for-testing_113.md 展示了 Chrome for Testing 113 的发布输出。对照两份记录可以发现命令结构完全一致版本 构建日期 命名空间 推送开关 浏览器 旧版本开关只是浏览器参数从chrome变为chrome-for-testingChrome for Testing 分支的版本探测使用awk {print $5}因 CFT 的google-chrome --version输出列位置不同印证了tag_and_push_browser_images.sh中按浏览器定制探测逻辑的设计标签模板同样遵循完整版/短版 × 驱动 × Grid × 日期的组合规则。这种一致性意味着只要掌握本文的标签规则与脚本机制仓库中从 4.28.1 到 4.48.0 的所有浏览器发布记录都可以被快速读懂并用于镜像选型、版本回退与构建问题排查。参考文件索引发布记录本体CHANGELOG/archived/4.33.0/chrome_114.md发布脚本源码tag_and_push_browser_images.shMakefile 发布目标Makefile第 781-808 行版本矩阵与目录说明CHANGELOG/README.mdChrome 镜像构建参数NodeChrome/Dockerfile最新发布记录示例CHANGELOG/4.48.0/chrome-for-testing_113.md赞分享测试后端云原生容器编排可观测性【免费下载链接】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点击查看免费下载相关推荐Selenium Docker 镜像的版本标签体系以 Grid 4.33.0 与 Chrome 128 发布记录为例Selenium Docker 镜像的版本标签体系以 Grid 4.33.0 与 Chrome 128 发布记录为例 本文以仓库中的发布记录 CHANGELO测试后端云原生容器编排可观测性Detox 测试产物Artifacts完全指南录制、配置与实战排查Detox 测试产物Artifacts完全指南录制、配置与实战排查 导读 本文以 Detox 官方文档《APIRef.Artifacts》为核心骨架系统测试后端云原生容器编排可观测性docker-selenium 镜像标签生成全解以 Chrome 130 / Selenium Grid 4.33.0 发布记录为例docker selenium 镜像标签生成全解以 Chrome 130 / Selenium Grid 4.33.0 发布记录为例 本篇文章以仓库内 CHA测试后端云原生容器编排可观测性上一篇LifeOS Fabric humanize 模式实战把 AI 味文本改写成自然的人类写作风格下一篇Mermaid Live Editor三步掌握免费在线图表编辑的终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →