docker-selenium 4.28.1 的 Firefox 133 镜像标签解析:tag_and_push_browser_images.sh 与版本矩阵实战

发布时间:2026/10/5 10:18:14
docker-selenium 4.28.1 的 Firefox 133 镜像标签解析: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 仓库中CHANGELOG/archived/4.28.1/firefox_133.md的发布日志为切入点完整解读 Selenium Grid 4.28.1-20250202 构建中 Firefox 133.0.3 GeckoDriver 0.35.0 镜像的 20 个发布标签node-firefox 与 standalone-firefox 各 10 个背后的生成逻辑。你将掌握该仓库镜像标签命名规范、tag_and_push_browser_images.sh脚本的完整参数与执行流程、Firefox 节点镜像的构建原理以及如何依据 CHANGELOG/README.md 的版本矩阵精准挑选你需要的镜像 tag。一、先读懂这份发布日志一次打标签命令的完整输出firefox_133.md的内容是一次真实发布命令的逐行记录命令为./tag_and_push_browser_images.sh 4.28.1 20250202 selenium false firefox true其参数含义对应 tag_and_push_browser_images.sh 的脚本形参位置脚本变量传入值含义1VERSION4.28.1Selenium Grid 版本号2BUILD_DATE20250202构建日期YYYYMMDD3NAMESPACEseleniumDocker 镜像命名空间4PUSH_IMAGEfalse是否执行docker push日志中只打标签不推送5BROWSERfirefox浏览器类型进入脚本的 firefox 分支6RELEASE_OLD_VERSIONtrue是否按旧版本发布省略时默认false命令执行后脚本先从已构建的selenium/node-firefox:4.28.1-20250202镜像内部探测版本信息Selenium Grid version - 4.28.1-20250202 Firefox version - 133.0.3 Short Firefox version - 133.0 GeckoDriver version - 0.35.0 Short GeckoDriver version - 0.354.28.1-20250202由TAG_VERSION${VERSION}-${BUILD_DATE}拼接而成脚本第 15 行完整版本133.0.3、0.35.0与短版本133.0、0.35同时存在这是脚本short_version()函数取主次版本号的结果短版本标签用于让用户无需记住 patch 号即可拉取。随后按三种 tag 分类、长短两组依次为node-firefox与standalone-firefox各打出 10 个标签最终共 20 个完整版本 驱动 Grid最精确的一组selenium/node-firefox:133.0.3-geckodriver-0.35.0-grid-4.28.1-20250202 selenium/standalone-firefox:133.0.3-geckodriver-0.35.0-grid-4.28.1-20250202浏览器完整版本 驱动版本 构建日期selenium/node-firefox:133.0.3-geckodriver-0.35.0-20250202 selenium/standalone-firefox:133.0.3-geckodriver-0.35.0-20250202浏览器完整版本 构建日期selenium/node-firefox:133.0.3-20250202 selenium/standalone-firefox:133.0.3-20250202短版本三组同一镜像的“只认大版本”别名selenium/node-firefox:133.0-geckodriver-0.35-grid-4.28.1-20250202 selenium/standalone-firefox:133.0-geckodriver-0.35-grid-4.28.1-20250202 selenium/node-firefox:133.0-geckodriver-0.35-20250202 selenium/standalone-firefox:133.0-geckodriver-0.35-20250202 selenium/node-firefox:133.0-20250202 selenium/standalone-firefox:133.0-20250202注意本日志因RELEASE_OLD_VERSIONtrue不再生成不带构建日期的133.0.3、133.0-geckodriver-0.35等裸标签避免覆盖最新版本同名的浮动标签——这正是归档旧版本发布时的重要保护机制详见第三节。二、标签命名规范20 个标签如何组织成一套可检索体系文档 对node-firefox的标签结构给出了通用范式与上述输出完全对应selenium/node-firefox-Major.Minor.Patch-YYYYMMDD selenium/node-firefox-browserVersion-browserDriver-browserDriverVersion-Major.Minor.Patch-YYYYMMDD以及由上述组合衍生出的全部排列变体可归纳为三类Grid 维度标签Major.Minor.Patch、Major.Minor.Patch-YYYYMMDD本次为4.28.1/4.28.1-20250202所在位置浏览器/驱动维度标签BrowserMajor.BrowserMinor、BrowserMajor.BrowserMinor-YYYYMMDD本次为133.0/133.0-20250202组合标签BrowserMajor.BrowserMinor-geckodriver-GeckoDriverMajor.GeckoDriverMinor[-YYYYMMDD][-grid-Grid版本-YYYYMMDD]本次为133.0-geckodriver-0.35-grid-4.28.1-20250202等。实用建议日常测试建议使用最精确的133.0.3-geckodriver-0.35.0-grid-4.28.1-20250202以固定整套环境若只需锁定 Firefox 大版本、容忍 patch 更新则133.0或133.0-20250202更合适。对应地standalone-firefox与node-firefox共享同一套标签命名只是前者自带 Hub/Grid 全栈功能可单独运行。三、脚本源码剖析版本探测、短版本与 retag 的实现细节tag_and_push_browser_images.sh 是本 changelog 背后的生成引擎其 firefox 分支第 195-236 行是本次日志的直接来源。3.1 版本探测版本号来自镜像内部而非硬编码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})脚本通过docker run临时启动已构建的节点镜像执行firefox --version与geckodriver --version并用awk提取版本号。这意味着标签永远与镜像内实际打包的二进制版本保持一致消除了手工填写版本号导致标签错配的风险。3.2 short_version主次版本提取function short_version() { local __version_split(${__long_version//./ }) echo ${__version_split[0]}.${__version_split[1]} }把133.0.3拆为133、0、3后取前两段拼成133.0同理0.35.0→0.35为短标签提供版本来源。3.3 FIREFOX_TAGS 数组的构造规则以RELEASE_OLD_VERSION为开关标签集合分两层基础 6 个标签始终生成完整版本-geckodriver-驱动-grid-TAG_VERSION、完整版本-geckodriver-驱动-BUILD_DATE、完整版本-BUILD_DATE及三者对应的短版本形式追加 4 个标签仅当RELEASE_OLD_VERSIONfalse完整版本-geckodriver-驱动、完整版本、短版本-geckodriver-短驱动、短版本。随后循环对node-firefox与standalone-firefox两个镜像执行retagfor firefox_tag in ${FIREFOX_TAGS[]}; do retag node-firefox ${firefox_tag} retag standalone-firefox ${firefox_tag} done3.4 retagdocker tag 与发布提升两条路径retag() 函数 默认使用docker tag ${NAMESPACE}/${__image}:${TAG_VERSION} ${NAMESPACE}/${__image}:${__tag}并在PUSH_IMAGEtrue时追加docker push。而当 CI 的PROMOTE_TAGStrue发布流程直接提升已测试镜像、而非重新构建时则改用docker buildx imagetools create --tag ... ${NAMESPACE}/${__image}:${TAG_VERSION}注释脚本第 18-30 行解释得很清楚此时源镜像只存在于远端 registry本地没有镜像层docker tag无法表达且docker pull只会带回构建机的单架构镜像imagetools在 index 层面完成 registry 到 registry 的多架构镜像打标。若同时设置PROMOTE_GHCR_NAMESPACE还会在同一调用中镜像到 GHCR 命名空间。四、版本从何而来NodeFirefox 镜像构建链路本次日志中的node-firefox:4.28.1-20250202并非凭空出现其构建逻辑位于 NodeFirefox/DockerfileFirefox 安装第 21-70 行通过ARG FIREFOX_VERSION控制常规数值版本如 133走install-firefox-package.sh下载 Mozilla 官方.debamd64/aarch64 分别映射x86_64/aarch64找不到 .deb 时回退 tar.bz2latest/beta-latest等通道或大于等于 136 的主版本走install-firefox-apt.sh的 apt 安装随后执行get_lang_package.sh拉取语言包并apt-get upgrade修复依赖 CVE。GeckoDriver 安装第 75-86 行解析 GitHub releases 最新版后按架构下载geckodriver-${GK_VERSION}-linux64.tar.gz或linux-aarch64解压到/opt/geckodriver-${GK_VERSION}并通过ln -fs软链到/usr/bin/geckodriver。浏览器信息落盘第 93-96 行构建时把firefox、实际版本写入/opt/selenium/browsers/firefox/并生成{moz:firefoxOptions: {binary: ${SE_BROWSER_BINARY_LOCATION:-/usr/bin/firefox}}}的 binary_location 文件——这正是 ENV_VARIABLES.md 中SE_BROWSER_BINARY_LOCATION环境变量所作用的配置逻辑默认/usr/bin/firefox自定义安装路径时可通过该变量覆盖并配合GENERATE_CONFIGtrue使用。也正因构建时已安装 Firefox 133.0.3 与 GeckoDriver 0.35.0第三节的版本探测命令才能从镜像内读到一致的结果。五、版本矩阵与归档机制如何在仓库里定位本日志firefox_133.md位于CHANGELOG/archived/4.28.1/下说明 4.28.1 已不再是当前最新 Grid 版本其 changelog 被归档管理。整个归档与矩阵索引由 CHANGELOG/generate-matrix-readme.py 自动维护归档步骤第 8-42 行扫描符合\d\.\d\.\d的目录仅保留最新版本其余shutil.move到archived/下已存在则跳过矩阵扫描第 45-67 行用正则([\w-])_(\d)\.md解析每个 changelog 文件名得到grid_version → browser → version的映射README 生成第 70-186 行按浏览器分组生成Grid 版本 × 浏览器版本的 ✓ 链接矩阵其中归档版本的链接前缀为archived/{grid_version}/{browser}_{version}.md。因此 CHANGELOG/README.md 的 Archived Grid Versions → Firefox 表中4.28.1行与133列交叉处的 ✓ 即指向本文分析的 firefox_133.md。该 README 明确说明其动机是让用户既能用最新 Grid 核心功能又能按需锁定浏览器版本做跨浏览器测试或规避特定版本问题并强调官方并未对每种 Grid×浏览器组合做全量回归测试使用者需结合自身测试需求评估。六、实战用 133 系标签跑起 Firefox 节点拿到标签后按 文档 的 Hub-and-Node 模式即可快速验证# 1. 创建共享网络 docker network create grid # 2. 启动 Hub暴露 4442-4444 端口 docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.28.1 # 3. 启动本次 changelog 对应的 Firefox 节点务必使用 --shm-size2g docker run -d --net grid -e SE_EVENT_BUS_HOSTselenium-hub \ --shm-size2g \ selenium/node-firefox:133.0.3-geckodriver-0.35.0-grid-4.28.1-20250202随后将 WebDriver 测试指向http://localhost:4444即可如需观察容器内运行情况可访问http://localhost:7900/?autoconnect1resizescalepasswordsecret需配合 VNC/noVNC 端口映射。若只做单机测试也可直接拉取自带 Grid 的selenium/standalone-firefox:133.0.3-geckodriver-0.35.0-grid-4.28.1-20250202。测试结束后执行docker network rm grid清理网络。注意含有浏览器的镜像必须使用--shm-size2g以利用宿主共享内存否则浏览器进程可能因 /dev/shm 过小而崩溃。七、进一步探索阅读脚本全貌与其余浏览器分支chrome、chromium、edge、chrome-for-testingtag_and_push_browser_images.sh查看 Firefox 节点构建脚本与清理配置NodeFirefox/install-firefox-apt.sh、NodeFirefox/install-firefox-package.sh、NodeFirefox/firefox-cleanup.sh对比同一 Grid 版本的其他浏览器 changelog如 firefox_132.md132.0.2 geckodriver 0.35.0、firefox_134.md查看当前最新 Grid 版本的对应记录GeckoDriver 已升级至 0.37.1CHANGELOG/4.48.0/firefox_133.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.48.0 Firefox 120.0.1 镜像标签全解tag_and_push_browser_images.sh 的版本矩阵生成机制docker selenium 4.48.0 Firefox 120.0.1 镜像标签全解tag_and_push_browser_images.sh 的版本测试后端云原生容器编排可观测性Salesforce Apex 开发实战指南从类结构、Trigger 框架到异步模式与 Governor Limit 管理Salesforce Apex 开发实战指南从类结构、Trigger 框架到异步模式与 Governor Limit 管理 本指南以 claude skill测试后端云原生容器编排可观测性docker-selenium 镜像标签矩阵解析以 Chrome 118 Selenium Grid 4.28.1 为例docker selenium 镜像标签矩阵解析以 Chrome 118 Selenium Grid 4.28.1 为例 本文以 CHANGELOG/ar测试后端云原生容器编排可观测性上一篇Adobe-GenP 3.0破解工具终极指南快速永久激活Adobe全家桶下一篇5分钟掌握代码绘图Draw.io Mermaid插件彻底改变你的图表工作流创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询