docker-selenium 发布记录解读:Firefox 129 镜像标签体系与 tag_and_push_browser_images.sh 工作原理解析
发布时间:2026/10/8 7:45:00 锦皓数字建站

测试后端云原生容器编排可观测性【免费下载链接】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.32.0/firefox_129.md 这份 Firefox 129 发布日志为切入点完整解读其背后的镜像打标签脚本tag_and_push_browser_images.sh的调用方式、参数语义、标签命名规则与底层实现并结合 NodeFirefox/Dockerfile 与 docker-compose-v3.yml 说明这些版本化标签如何被构建与消费。读完本文你将掌握如何阅读 docker-selenium 的版本发布记录、如何手工复现浏览器镜像打标签流程以及如何按需锁定selenium/node-firefox与selenium/standalone-firefox的精确镜像版本。这份发布记录讲的是什么CHANGELOG/archived/4.32.0/firefox_129.md记录了 Selenium Grid 4.32.0 发布周期中 Firefox 浏览器镜像的打标签执行过程。它本质上是一次tag_and_push_browser_images.sh脚本运行的完整控制台输出脚本先打印本次任务的关键版本信息再依次为node-firefox与standalone-firefox两类镜像生成一组标签。这份记录文件本身即属于仓库的变更日志体系CHANGELOG/目录按发布版本与浏览器维度归档归档版本位于 CHANGELOG/archived/4.32.0/是研究发布流水线的第一手素材。记录中确认的核心版本组合如下组件完整版本短版本Selenium Grid4.32.0-20250505—Firefox129.0.2129.0GeckoDriver0.36.00.36其中4.32.0-20250505是 Selenium Grid 版本号与构建日期的组合TAG_VERSION${VERSION}-${BUILD_DATE}也是本次发布的主标签基线。命令参数逐位拆解发布记录第一行给出了触发命令./tag_and_push_browser_images.sh 4.32.0 20250505 selenium false firefox true对照脚本 tag_and_push_browser_images.sh 第 39 行的参数定义这 7 个位置参数含义如下位置值对应变量含义14.32.0VERSIONSelenium Grid 版本号220250505BUILD_DATE构建日期与 VERSION 拼接成4.32.0-202505053seleniumNAMESPACE镜像命名空间仓库名前缀脚本第 16 行还会用${NAME:-selenium}再次兜底4falsePUSH_IMAGE是否在打标签后执行docker push默认false5firefoxBROWSER目标浏览器分支脚本通过case分发6trueRELEASE_OLD_VERSION是否同时打旧版本风格标签默认false7缺省PLATFORM平台默认linux/amd64注意第 6 个参数为trueRELEASE_OLD_VERSIONtrue它直接影响最终标签数量——这一点会在下文标签命名规则中详细展开。该脚本通常由 Makefile 的tag_and_push_firefox_images目标经tag_and_push_browser_images汇总目标Makefile调用$(VERSION)、$(BUILD_DATE)、$(NAMESPACE)、$(PUSH_IMAGE)、$(RELEASE_OLD_VERSION)均为 Makefile 变量注入。版本探测版本号从哪来脚本并没有硬编码 Firefox 与 GeckoDriver 版本号而是通过docker run临时启动刚构建好的node-firefox:4.32.0-20250505镜像在容器内执行浏览器/驱动程序的--version命令并解析输出脚本第 197、201 行FIREFOX_VERSION$(docker run --rm ${NAMESPACE}/node-firefox:${TAG_VERSION} firefox --version | awk {print $3}) GECKODRIVER_VERSION$(docker run --rm ${NAMESPACE}/node-firefox:${TAG_VERSION} geckodriver --version | awk NR1{print $2})firefox --version的输出形如Mozilla Firefox 129.0.2取第 3 列得到129.0.2geckodriver --version的第一行包含geckodriver 0.36.0取第 2 列得到0.36.0短版本由脚本内定义的short_version()函数脚本第 5357 行取前两段生成129.0.2 → 129.0、0.36.0 → 0.36。这种运行时探测保证了标签始终与镜像内实际安装的二进制版本严格一致避免手工维护版本号造成漂移。版本来源可进一步追溯至 NodeFirefox/Dockerfile 的构建阶段Firefox 通过install-firefox-apt.shapt 安装firefox系列包或install-firefox-package.sh下载 Mozilla 官方.deb/.tar.bz2安装包安装GeckoDriver 则从 Mozilla 官方 GitHub Releases 下载对应架构的压缩包Dockerfile 第 7686 行并按版本归档为/opt/geckodriver-$GK_VERSION后软链到/usr/bin/geckodriver。构建结束时Firefox 版本、浏览器名与二进制路径还会被写入/opt/selenium/browsers/firefox/下的name、version、binary_location文件Dockerfile 第 9396 行供 Selenium Grid 节点启动时读取浏览器能力信息。标签命名规则6 组标签的构成日志中firefox分支在RELEASE_OLD_VERSIONtrue时生成了 6 个标签脚本第 206218 行的基础数组每个标签同时作用于node-firefox与standalone-firefox两个镜像因此共 12 行Tagged输出。标签可归纳为三类格式完整版本 驱动 Grid 主版本精确锁定到补丁级与构建日129.0.2-geckodriver-0.36.0-grid-4.32.0-20250505完整版本 驱动 构建日期不含 Grid 版本129.0.2-geckodriver-0.36.0-20250505完整版本 构建日期129.0.2-20250505上述三组各再生成一个短版本变体129.0/0.36形成另外三组标签129.0-geckodriver-0.36-grid-4.32.0-20250505129.0-geckodriver-0.36-20250505129.0-20250505对应的数组定义见脚本第 206218 行例如首个元素为${FIREFOX_VERSION}-geckodriver-${GECKODRIVER_VERSION}-grid-${TAG_VERSION}其中${TAG_VERSION}即4.32.0-20250505。关键点在于RELEASE_OLD_VERSION分支脚本第 219230 行当该参数为false时脚本会追加4 个不含 Grid 版本/构建日期的日常使用标签例如129.0.2-geckodriver-0.36.0、129.0.2、129.0-geckodriver-0.36、129.0而当其为true时则跳过追加。本次发布日志第 6 个参数为true所以恰好只输出 12 个标签——这解释了日志末尾没有出现纯版本号标签的原因。这正对应 Makefile 注释中引用的 issue 背景打标签行为随RELEASE_OLD_VERSION开关而变化。底层打标签机制retag 函数每个标签都由脚本内的retag()函数脚本第 3151 行处理源镜像统一为${NAMESPACE}/node-firefox:${TAG_VERSION}即selenium/node-firefox:4.32.0-20250505。默认路径下执行docker tag ${__source} ${NAMESPACE}/${__image}:${__tag} docker push ... # 仅当 PUSH_IMAGEtrue 时本次PUSH_IMAGEfalse因此只是本地打标签而不推送。此外脚本支持发布流水线中的两种进阶模式PROMOTE_TAGStrue脚本第 12 行由 CI 的deploy.yml在直接提升已测试镜像而非重新构建时注入改用docker buildx imagetools create在 registry 间直接复制 manifest避免本地docker pull只能取回单架构镜像、导致多架构索引丢失的问题PROMOTE_GHCR_NAMESPACE脚本第 13、3840 行在同一调用内同时向 GHCR 命名空间镜像标签解决本路径下本地镜像存储为空、后续docker images发现不到待镜像标签的困境。这两处设计均为构建器/CI 上下文服务的普通使用者不需要关心但有助于理解日志中每条Tagged输出背后的发布语义。如何消费这些版本化标签通过 docker compose 使用固定版本仓库根目录的 docker-compose-v3.yml 是标准 Selenium Grid 三节点示例其中 Firefox 节点固定引用selenium/node-firefox:4.48.0-20260905第 2329 行并配置shm_size: 2gb与SE_EVENT_BUS_HOSTselenium-hub环境变量firefox: image: selenium/node-firefox:4.48.0-20260905 shm_size: 2gb depends_on: - selenium-hub environment: - SE_EVENT_BUS_HOSTselenium-hub对照可知日常拉取时应优先选择短版本标签如129.0-geckodriver-0.36-grid-4.32.0-20250505以锁定浏览器主版本与驱动兼容组合而发布记录中的129.0.2-geckodriver-0.36.0-grid-4.32.0-20250505这类全量标签适合在需要精确复现补丁级版本如排查 Firefox 129.0.2 特有行为时使用。手工验证镜像内版本无论选择哪个标签都可沿用脚本同款方式核对容器内实际版本docker run --rm selenium/node-firefox:129.0-geckodriver-0.36-grid-4.32.0-20250505 firefox --version docker run --rm selenium/node-firefox:129.0-geckodriver-0.36-grid-4.32.0-20250505 geckodriver --version复现发布打标签流程若需在本地为已构建的镜像复现同样流程例如自建私有 registry 时可参考 Makefile 的tag_and_push_firefox_images目标调用脚本该目标也是tag_and_push_browser_imagesMakefile的五种浏览器汇总目标之一。注意脚本会以docker run探测镜像内版本因此要求本机已存在selenium/node-firefox:${VERSION}-${BUILD_DATE}镜像或可从远端拉取。小结CHANGELOG/archived/4.32.0/firefox_129.md不是一段孤立的日志而是 docker-selenium 发布流水线中浏览器镜像打标签环节的完整快照它展示了tag_and_push_browser_images.sh如何通过运行时版本探测生成覆盖完整/短版本、驱动版本、Grid 版本与构建日期的 6 组标签如何受RELEASE_OLD_VERSION开关控制标签集合以及retag()在本地打标与 CI 多架构提升两种模式下的行为差异。掌握这些信息后读者既能精确阅读任意版本的发布记录也能在自己的环境中按需锁定、验证乃至复现 Firefox 相关镜像的版本化发布。赞分享测试后端云原生容器编排可观测性【免费下载链接】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.30.0 Firefox 126.0.1 镜像发布记录解读标签体系与 tag_and_push_browser_images.sh 全解析docker selenium 4.30.0 Firefox 126.0.1 镜像发布记录解读标签体系与 tag_and_push_browser_image测试后端云原生容器编排可观测性docker-selenium Firefox 134 镜像标签全解析Selenium Grid 4.29.0 发布记录与 tag_and_push_browser_images.sh 标签体系实战docker selenium Firefox 134 镜像标签全解析Selenium Grid 4.29.0 发布记录与 tag_and_push_brow测试后端云原生容器编排可观测性docker-selenium 4.48.0 发布解读Chrome 135 镜像标签体系与 tag_and_push_browser_images.sh 工作原理解析docker selenium 4.48.0 发布解读Chrome 135 镜像标签体系与 tag_and_push_browser_images.sh 工作测试后端云原生容器编排可观测性上一篇如何构建你的终极智能割草机器人Open Mower ROS完整指南下一篇Rolldown构建中断处理如何优雅地处理JavaScript构建过程中的错误创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。