资讯动态

docker-selenium 浏览器镜像标签规范与发布流程解析:以 Selenium Grid 4.32.0 的 Chrome 127 发布记录为例

发布时间:2026/10/8 8:05:53 来源:尧图企业网站定制
测试后端云原生容器编排可观测性【免费下载链接】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 仓库中 Selenium Grid 4.32.0 的 Chrome 127 发布记录CHANGELOG/archived/4.32.0/chrome_127.md为线索完整讲解该项目浏览器镜像的多标签命名体系、tag_and_push_browser_images.sh脚本的参数与执行逻辑以及 Node/Standalone 镜像在实际使用中如何依据标签精确锁定浏览器与 Grid 版本。读完本文你将能够读懂任意一条浏览器镜像发布日志独立构造出可复现的镜像标签并在自己的 Selenium Grid 集群中准确选择需要的镜像版本。发布记录原文一次 Chrome 127 镜像打标签的完整日志Selenium Grid 4.32.0 于构建日期 20250515 发布了 Chrome 127 版本的浏览器镜像。归档的发布记录完整保留了当时运行打标签脚本的输出CHANGELOG/archived/4.32.0/chrome_127.md./tag_and_push_browser_images.sh 4.32.0 20250515 selenium false chrome true Tagging images for browser chrome, version 4.32.0, build date 20250515, namespace selenium Selenium Grid version - 4.32.0-20250515 Chrome version - 127.0.6533.119 Short Chrome version - 127.0 ChromeDriver version - 127.0.6533.119 Short ChromeDriver version - 127.0 Tagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.32.0-20250515 Tagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.32.0-20250515 Tagged selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20250515 Tagged selenium/standalone-chrome:127.0.6533.119-chromedriver-127.0.6533.119-20250515 Tagged selenium/node-chrome:127.0.6533.119-20250515 Tagged selenium/standalone-chrome:127.0.6533.119-20250515 Tagged selenium/node-chrome:127.0-chromedriver-127.0-grid-4.32.0-20250515 Tagged selenium/standalone-chrome:127.0-chromedriver-127.0-grid-4.32.0-20250515 Tagged selenium/node-chrome:127.0-chromedriver-127.0-20250515 Tagged selenium/standalone-chrome:127.0-chromedriver-127.0-20250515 Tagged selenium/node-chrome:127.0-20250515 Tagged selenium/standalone-chrome:127.0-20250515这段日志揭示的事实包括版本组合Chrome 与 ChromeDriver 均为127.0.6533.119二者短版本均为127.0Selenium Grid 版本为4.32.0组合后的完整 Grid 标签为4.32.0-20250515。镜像范围每次打标签同时作用于node-chrome与standalone-chrome两类镜像。标签数量单次发布为每个镜像生成 10 个标签完整版本 6 个 短版本 6 个中除RELEASE_OLD_VERSIONtrue时追加的 4 个外的固定部分日志中可见每个镜像 10 个。本例中RELEASE_OLD_VERSION参数为true因此追加了不含构建日期的 4 个短标签日志节选了固定生成的 6 个。标签体系为什么一个浏览器要打这么多标签同一份镜像被赋予多个标签是为了满足不同场景下的精确锁定与快速引用需求。docker-selenium 的官方文档docs/docker-hub/node-chrome.md将标签结构归纳为两类selenium/node-chrome-Major.Minor.Patch-YYYYMMDD selenium/node-chrome-browserVersion-browserDriver-browserDriverVersion-Major.Minor.Patch-YYYYMMDD结合本次发布日志可以拆解出六种标签形态标签形态示例用途完整版本 驱动 Grid 日期127.0.6533.119-chromedriver-127.0.6533.119-grid-4.32.0-20250515最精确锁定浏览器、驱动、Grid、构建日期全部信息完整版本 驱动 日期127.0.6533.119-chromedriver-127.0.6533.119-20250515锁定浏览器与驱动精确版本及发布日完整版本 日期127.0.6533.119-20250515锁定浏览器精确版本与发布日短版本 短驱动 Grid 日期127.0-chromedriver-127.0-grid-4.32.0-20250515锁定到次要版本级别便于按大版本引用短版本 短驱动 日期127.0-chromedriver-127.0-20250515次要版本级别的驱动引用短版本 日期127.0-20250515次要版本级别的最简引用短版本127.0由short_version函数从完整版本127.0.6533.119中提取前两段得到其实现位于 tag_and_push_browser_images.shfunction short_version() { local __long_version$1 local __version_split(${__long_version//./ }) echo ${__version_split[0]}.${__version_split[1]} }脚本参数与执行逻辑详解发布日志第一行就是脚本调用./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构建日期YYYYMMDD3NAMESPACEselenium镜像命名空间对应 Docker Hub 组织名4PUSH_IMAGEfalse是否执行docker push默认false5BROWSERchrome浏览器类型支持 chrome / chromium / edge / firefox / chrome-for-testing6RELEASE_OLD_VERSIONtrue是否为旧版本补发标签默认false7PLATFORM默认linux/amd64用于探测版本时指定运行平台执行流程分四步第一步探测镜像内实际版本。脚本通过docker run临时启动镜像并读取版本命令的输出保证标签与镜像内真实二进制一致例如 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})第二步组装标签数组。CHROME_TAGS先放入含 Grid 版本与构建日期的 6 个标签当RELEASE_OLD_VERSION为false时再追加 4 个不带日期、面向最新发布的简化标签如127.0.6533.119-chromedriver-127.0.6533.119、127.0.6533.119、127.0-chromedriver-127.0、127.0。这解释了归档的 4.32.0 记录为何只输出 6 类标签——旧版本归档时以true补打不再抢占无日期标签。第三步批量打标签。对每个标签依次作用于node-chrome与standalone-chromefor chrome_tag in ${CHROME_TAGS[]}; do retag node-chrome ${chrome_tag} retag standalone-chrome ${chrome_tag} done第四步按需推送。retag()函数在PUSH_IMAGEtrue时追加执行docker pushPROMOTE_TAGStrue时改用docker buildx imagetools create在 registry 之间直接复制 manifest保留多架构清单并支持通过PROMOTE_GHCR_NAMESPACE在同一调用内同步镜像到 GHCR。从发布到使用如何用标签锁定浏览器版本归档记录中的每个标签都可以直接用于docker pull/docker run典型用法是配合 Hub 与 Node 架构参见 docs/docker-hub/node-chrome.md 与 docker-compose-v3.yml# 1. 创建网络 docker network create grid # 2. 启动 Hub docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.32.0-20250515 # 3. 启动 Chrome Node锁定到本次发布的精确版本 docker run -d --net grid -e SE_EVENT_BUS_HOSTselenium-hub \ --shm-size2g \ selenium/node-chrome:127.0.6533.119-chromedriver-127.0.6533.119-grid-4.32.0-20250515要点运行含浏览器的镜像时务必加--shm-size2g否则 Chrome 可能因/dev/shm过小而崩溃。官方推荐使用完整标签固定浏览器与 Grid 版本而不是latest跨浏览器测试或遇到特定浏览器版本问题时按标签逐版本排查是标准手段。Windows PowerShell 中换行符使用反引号。源码佐证镜像内的 Chrome 与 ChromeDriver 从何而来标签锁定的版本在镜像构建时由 NodeChrome/Dockerfile 决定默认通过install-chrome.sh安装google-chrome-stable通过install-chromedriver.sh安装驱动可用CHROME_DRIVER_VERSION指定版本构建完成后把实际版本写入/opt/selenium/browsers/chrome/version作为 Node 上报给 Grid 的能力依据。wrap_chrome_binary则对 Chrome 可执行文件做包装用于按会话注入SE_BROWSER_ARGS_*等运行时参数。这些机制共同保证了发布日志中探测到的127.0.6533.119与容器内真实可用的 Chrome 版本一致。归档机制为什么这份记录位于 archived 目录CHANGELOG/README.md 以“Grid 版本 × 浏览器版本”矩阵形式汇总所有可用镜像最新版本在前、旧版本归档。归档由 CHANGELOG/generate-matrix-readme.py 维护当仓库中出现新的 Grid 版本目录时脚本会把旧版本目录整体移入archived/并重新生成矩阵。因此4.32.0 的发布记录目前位于 CHANGELOG/archived/4.32.0/chrome_127.md与同期的 CHANGELOG/archived/4.32.0/chrome_126.md 等文件一起构成该 Grid 版本下完整的浏览器发布史。这一设计让用户既能在最新版矩阵中找到全部可用组合也能回溯历史上任意 Grid 版本对应的浏览器标签。扩展其他浏览器的同类发布记录打标签脚本以case分支统一处理五类浏览器tag_and_push_browser_images.shchrome探测google-chrome --version与chromedriver --versionchromium探测chromium --version与chromedriver --versionedge探测microsoft-edge --version与msedgedriver --version仅linux/amd64firefox探测firefox --version与geckodriver --versionchrome-for-testing探测google-chrome --version取第 5 段与chromedriver --version同样仅支持linux/amd64。各分支的标签组装规则完全一致只是驱动命名不同chromedriver/edgedriver/geckodriver。因此理解了本文的 Chrome 127 日志就相当于读懂了整个仓库中所有浏览器版本的发布记录包括 CHANGELOG/4.48.0/chrome_127.md 这类最新版本的对应文件。与 Makefile 的集成日常发布无需手工调用脚本Makefile 已封装好入口tag_and_push_chrome_images: ./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) chrome $(RELEASE_OLD_VERSION)执行make tag_and_push_browser_images会依次为 chrome、chrome-for-testing、chromium、firefox、edge 全部打标签make tag_and_push_browser_images_ghcr则通过docker buildx imagetools create将本地全部浏览器标签镜像到 GHCR。脚本输出中的Selenium Grid version - 4.32.0-20250515正对应 Makefile 中TAG_VERSION : $(VERSION)-$(BUILD_DATE)的组合规则。小结Selenium Grid 4.32.0 的 Chrome 127 发布记录虽然只是一段脚本输出却浓缩了 docker-selenium 镜像发布的核心设计以“完整/短版本 × 驱动 × Grid × 构建日期”的多维标签体系让每个镜像都具备可精确追溯、可快速引用的双重能力。结合 tag_and_push_browser_images.sh 的源码开发者可以完整理解从构建、探测、打标签到推送的整条发布链路并据此在真实项目中安全地固定浏览器版本、复现历史环境或参与镜像发布维护。赞分享测试后端云原生容器编排可观测性【免费下载链接】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 浏览器镜像标签发布全解析以 Selenium Grid 4.32.0 Chrome 113 发布记录为例docker selenium 浏览器镜像标签发布全解析以 Selenium Grid 4.32.0 Chrome 113 发布记录为例 本篇指南以 CH测试后端云原生容器编排可观测性docker-selenium 浏览器镜像标签全解以 Chrome 104 与 Selenium Grid 4.32.0 的发布记录为例docker selenium 浏览器镜像标签全解以 Chrome 104 与 Selenium Grid 4.32.0 的发布记录为例 本篇指南以仓库 CH测试后端云原生容器编排可观测性docker-selenium 浏览器镜像标签体系解析以 Selenium Grid 4.32.0 Chrome 124 发布记录为例docker selenium 浏览器镜像标签体系解析以 Selenium Grid 4.32.0 Chrome 124 发布记录为例 本篇技术指南以 d测试后端云原生容器编排可观测性上一篇深度探索aops-diana数据预处理机制让异常检测更高效、更精准下一篇如何免费批量下载抖音 TikTok 视频TikTokDownloader 三条使用路径创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

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

免费获取报价 →
↑