资讯动态

docker-selenium 4.34.0 发布记录解析:Chrome 134 镜像版本矩阵与 tag_and_push_browser_images.sh 自动打标机制

发布时间:2026/10/9 7:32: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点击查看免费下载Selenium Grid 4.34.0 的归档变更记录CHANGELOG/archived/4.34.0/chrome_134.md记录了 Chrome 134 镜像的完整发布过程本次发布将 Chrome 134.0.6998.165 与 ChromeDriver 134.0.6998.165 打包进node-chrome、standalone-chrome两类镜像并一次性生成了 20 个不同粒度的 Docker 标签。本文以该发布记录为主线结合仓库中的 tag_and_push_browser_images.sh、Makefile、NodeChrome/Dockerfile 与 docs/docker-hub/node-chrome.md完整还原浏览器版本 → 镜像标签矩阵 → 推送发布这条自动化链路读完你既能看懂任何一期chrome_*.md变更记录也能独立执行或改造这套打标流程。一次真实的 Chrome 134 发布从命令到输出归档记录开头给出了本次发布的核心命令./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false chrome true脚本按位置参数依次接收 7 个参数第 7 个为平台缺省linux/amd64本次运行的含义是位置参数值含义$1VERSION4.34.0Selenium Grid 版本号$2BUILD_DATE20250727构建日期用于区分同日多次发布$3NAMESPACEseleniumDocker Hub 命名空间仓库前缀$4PUSH_IMAGEfalse是否推送true时对每个标签执行docker push$5BROWSERchrome浏览器类型决定走哪个 case 分支$6RELEASE_OLD_VERSIONtrue是否仅发布旧版本不追加精简标签$7PLATFORM缺省linux/amd64用于版本探测时的--platform脚本执行后先探测并打印版本三元组Selenium Grid version - 4.34.0-20250727 Chrome version - 134.0.6998.165 Short Chrome version - 134.0 ChromeDriver version - 134.0.6998.165 Short ChromeDriver version - 134.0这组长版本 短版本的组合是理解后续全部标签的钥匙长版本134.0.6998.165精确到 Patch 号用于严格锁定浏览器行为短版本134.0只保留 Major.Minor允许镜像随补丁级更新漂移适合作为跟随某个主版本的入口标签。版本探测标签数据的来源chrome分支的版本探测逻辑tag_and_push_browser_images.sh先拉起已构建的 Node 镜像在容器内读取二进制真实版本而不是依赖构建时手工填写的参数CHROME_VERSION$(docker run --platform ${PLATFORM} --rm ${NAMESPACE}/node-chrome:${TAG_VERSION} google-chrome --version | awk {print $3}) CHROMEDRIVER_VERSION$(docker run --rm ${NAMESPACE}/node-chrome:${TAG_VERSION} chromedriver --version | awk {print $2})这里探测的版本号与镜像内部的持久化元数据一一对应在 NodeChrome/Dockerfile 中构建阶段会把浏览器版本写入/opt/selenium/browsers/chrome/version供 Selenium Grid 的节点配置generate_config在注册时上报我支持哪个浏览器版本。也就是说同一份版本号既驱动了 Docker 标签的生成也驱动了 Selenium Grid 的能力发现Capability匹配两边不会出现偏差。短版本由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]} }顺带一提generate_release_notes.sh在生成发布说明时也采用同样的docker run ... --version探测法把 Chrome、Chrome for Testing、Edge、Firefox、ffmpeg 等组件版本汇总成发布矩阵表两条流水线共享同一套事实来源。20 个标签背后的命名规范本次为node-chrome与standalone-chrome各打出 10 个标签原始输出每行一次retag调用Tagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.34.0-20250727 Tagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.34.0-20250727 Tagged selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20250727 Tagged selenium/standalone-chrome:134.0.6998.165-chromedriver-134.0.6998.165-20250727 Tagged selenium/node-chrome:134.0.6998.165-20250727 Tagged selenium/standalone-chrome:134.0.6998.165-20250727 Tagged selenium/node-chrome:134.0-chromedriver-134.0-grid-4.34.0-20250727 Tagged selenium/standalone-chrome:134.0-chromedriver-134.0-grid-4.34.0-20250727 Tagged selenium/node-chrome:134.0-chromedriver-134.0-20250727 Tagged selenium/standalone-chrome:134.0-chromedriver-134.0-20250727 Tagged selenium/node-chrome:134.0-20250727 Tagged selenium/standalone-chrome:134.0-20250727标签由三组信息自由组合命名模式为浏览器版本[-chromedriver-驱动版本][-grid-Grid版本]-构建日期信息片段取值示例语义浏览器版本134.0.6998.165或134.0完整/短版本驱动版本chromedriver-134.0.6998.165或chromedriver-134.0显式声明配套 ChromeDriverGrid 版本grid-4.34.0-20250727连同 Selenium Server 版本一起锁定构建日期20250727区分同版本号下的多次构建因此每种组合都能回答一类选型问题134.0.6998.165-chromedriver-134.0.6998.165-grid-4.34.0-20250727全锁定标签浏览器、驱动、Grid、构建日期全部固定适合需要可完全复现的 CI 流水线134.0.6998.165-20250727只锁定浏览器与构建日期让 Selenium Server 版本跟随 Grid 发布策略变化134.0-20250727短版本 构建日期浏览器可随补丁升级但保留当日快照边界不带日期的134.0、134.0-chromedriver-134.0滚动式标签永远指向该短版本线的最新构建适合日常开发环境。RELEASE_OLD_VERSIONtrue的效果从命名上即可看出本期的 10 个标签全部带构建日期而 tag_and_push_browser_images.sh 中浏览器版本 驱动版本纯浏览器版本这 4 个不带日期的滚动标签仅在RELEASE_OLD_VERSIONfalse即当前主版本线发布时才会追加。归档旧版本时显式禁用滚动标签避免旧版镜像悄悄覆盖134.0这类跟随最新入口是一种保护性的发布策略。retag本地打标、推送与 registry 直传每个标签都经过retag()函数统一处理tag_and_push_browser_images.sh其核心动作是把已构建的node-chrome:4.34.0-20250727基础镜像复制为各类别名标签docker tag ${NAMESPACE}/${__image}:${TAG_VERSION} ${NAMESPACE}/${__image}:${__tag} echo Tagged ${NAMESPACE}/${__image}:${__tag} if [ ${PUSH_IMAGE} true ]; then docker push ${NAMESPACE}/${__image}:${__tag} fiPUSH_IMAGEfalse时只完成本地打标本期即是如此输出里没有任何 push 日志true时每个标签独立推送。函数里还预留了两条自动化升级路径当环境变量PROMOTE_TAGStrue时由deploy.yml在将已测试镜像提升为正式发布阶段设置改用docker buildx imagetools create在 registry 与 registry 之间直接复制 manifest从而保留多架构multi-arch索引当PROMOTE_GHCR_NAMESPACE被设置时同一调用同时把标签镜像到 GHCR 命名空间。这是Makefile中tag_and_push_browser_images_ghcr目标无法覆盖的场景因为该路径本地 Docker store 为空无法用docker images发现镜像。与 Makefile 发布目标的衔接tag_and_push_browser_images.sh并非孤立脚本它挂在 Makefile 的发布目标树之下Makefiletag_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目标聚合五个浏览器chrome、chrome-for-testing、chromium、edge、firefox的独立打标任务一次make tag_and_push_browser_images即可覆盖全浏览器矩阵。相关变量的默认值同样定义在 MakefileVERSION缺省为当前发布版本BUILD_DATE缺省为当天日期$(shell date %Y%m%d)NAMESPACE缺省seleniumPUSH_IMAGE与RELEASE_OLD_VERSION缺省false。另外tests/scan_images/test_resolve_images.py 用单元测试守护了与标签相关的两个易错点images_for_tag解析 Makefile 时必须精确匹配:latest而不误中:latest-arm64且真实 Makefile 的解析结果要大于 20 个镜像——这从测试侧印证了发布标签体系与扫描校验流程是深度绑定的。如何拉取和使用 Chrome 134 镜像本文发布的镜像可直接用于搭建 Selenium Grid。以 Node 模式为例完整用法见 docs/docker-hub/node-chrome.md# 1. 创建网格专用网络 docker network create grid # 2. 启动 Hub docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:latest # 3. 启动 Chrome 134 Node务必分配共享内存 docker run -d --net grid -e SE_EVENT_BUS_HOSTselenium-hub \ --shm-size2g \ selenium/node-chrome:134.0.6998.165-chromedriver-134.0.6998.165-grid-4.34.0-20250727 # 4. WebDriver 测试指向 http://localhost:4444要点含浏览器的镜像务必加--shm-size2g否则 Chrome 渲染进程可能因/dev/shm过小而崩溃生产环境建议使用带完整版本信息的标签如上面的全锁定标签而非latest这种滚动标签需要浏览器画面时可访问http://localhost:7900/?autoconnect1resizescalepasswordsecret查看 VNC 实时画面测试结束后可用docker network rm grid清理网络。标签的通用结构同样记录在 docs/docker-hub/node-chrome.md既有node-chrome-Major.Minor.Patch-YYYYMMDD的简洁形式也有browserVersion-browserDriver-browserDriverVersion-Major.Minor.Patch-YYYYMMDD的完整形式与本期变更记录中生成的 20 个标签完全一致。结论一份变更记录如何串联起整套发布流水线chrome_134.md表面上只是一段脚本输出但把它放回仓库语境后它实际浓缩了 docker-selenium 的整套浏览器镜像发布机制版本来源唯一node-chrome容器内google-chrome --version的输出同时写入镜像元数据/opt/selenium/browsers/chrome/version和 Docker 标签标签矩阵自动生成tag_and_push_browser_images.sh 依据长/短版本 × 驱动 × Grid × 日期穷举 10 种组合node-chrome与standalone-chrome共用一套规则发布策略可控PUSH_IMAGE、RELEASE_OLD_VERSION、PROMOTE_TAGS三个开关分别控制是否推送、是否打滚动标签、是否走 registry 直传多架构发布测试兜底tests/scan_images/test_resolve_images.py 确保标签解析与镜像清单校验不因 Makefile 变动而失效。当你需要复刻一次类似发布时只需按./tag_and_push_browser_images.sh GRID版本 构建日期 命名空间 是否推送 浏览器 是否旧版本 [平台]的格式调用脚本或直接make tag_and_push_browser_images一键处理全部浏览器而当你看到任何一期的chrome_*.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点击查看免费下载相关推荐docker-selenium 4.34.0 版 Chrome 108 镜像标签全解从 tag_and_push_browser_images.sh 看发布脚本与版本矩阵docker selenium 4.34.0 版 Chrome 108 镜像标签全解从 tag_and_push_browser_images.sh 看发布脚测试后端云原生容器编排可观测性docker-selenium 4.34.0 Chrome 131 镜像发布记录版本矩阵、标签体系与镜像选择方法docker selenium 4.34.0 Chrome 131 镜像发布记录版本矩阵、标签体系与镜像选择方法 本文基于 docker selenium 仓测试后端云原生容器编排可观测性docker-selenium 4.34.0 Chrome 129 镜像 Tag 发布记录从 tag_and_push_browser_images.sh 复现完整打标逻辑docker selenium 4.34.0 Chrome 129 镜像 Tag 发布记录从 tag_and_push_browser_images.sh 复测试后端云原生容器编排可观测性上一篇三分钟解锁游戏资源RPG Maker加密文件处理实战手册下一篇终极浏览器代理管理指南ZeroOmega让你轻松掌控网络访问创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

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

免费获取报价 →
↑