docker-selenium 4.34.0 发布解读:Firefox 129.0.2 + GeckoDriver 0.36.0 镜像标签规范与打标签机制

发布时间:2026/10/9 1:45:19
docker-selenium 4.34.0 发布解读:Firefox 129.0.2 + GeckoDriver 0.36.0 镜像标签规范与打标签机制
测试后端云原生容器编排可观测性【免费下载链接】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.34.0 版本 Firefox 129.0.2 镜像的发布记录完整解析tag_and_push_browser_images.sh打标签脚本的参数约定、标签命名规范与底层执行流程并结合 NodeFirefox/Dockerfile 说明 Firefox 与 GeckoDriver 是如何被封装进 Node 与 Standalone 镜像的。读者读完将能理解浏览器镜像的完整标签体系并掌握如何通过精确镜像标签锁定特定浏览器、驱动与 Grid 版本组合。发布记录4.34.0 版本 Firefox 129 镜像的完整标签清单本次发布记录CHANGELOG/archived/4.34.0/firefox_129.md是一次针对 Firefox 浏览器镜像的发布/打标签操作的原始日志对应 Selenium Grid 4.34.0、Firefox 129.0.2 与 GeckoDriver 0.36.0 的组合。其执行命令与输出如下./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true Tagging images for browser firefox, version 4.34.0, build date 20250727, namespace selenium Selenium Grid version - 4.34.0-20250727 Firefox version - 129.0.2 Short Firefox version - 129.0 GeckoDriver version - 0.36.0 Short GeckoDriver version - 0.36 Tagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-grid-4.34.0-20250727 Tagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-grid-4.34.0-20250727 Tagged selenium/node-firefox:129.0.2-geckodriver-0.36.0-20250727 Tagged selenium/standalone-firefox:129.0.2-geckodriver-0.36.0-20250727 Tagged selenium/node-firefox:129.0.2-20250727 Tagged selenium/standalone-firefox:129.0.2-20250727 Tagged selenium/node-firefox:129.0-geckodriver-0.36-grid-4.34.0-20250727 Tagged selenium/standalone-firefox:129.0-geckodriver-0.36-grid-4.34.0-20250727 Tagged selenium/node-firefox:129.0-geckodriver-0.36-20250727 Tagged selenium/standalone-firefox:129.0-geckodriver-0.36-20250727 Tagged selenium/node-firefox:129.0-20250727 Tagged selenium/standalone-firefox:129.0-20250727版本信息解读维度值说明Selenium Grid 版本4.34.0-20250727Grid 主版本 构建日期构建日期为 2025-07-27Firefox 完整版本129.0.2由firefox --version输出解析得到Firefox 短版本129.0取完整版本号的前两段GeckoDriver 完整版本0.36.0由geckodriver --version首行解析得到GeckoDriver 短版本0.36取完整版本号的前两段从发布日志看这次操作一次性为node-firefox与standalone-firefox两类镜像各生成了 6 个标签共 12 个标签。短版本Short标签是本次发布的关键设计当浏览器存在小版本补丁升级如 129.0.2 → 129.0.3时短版本标签129.0可以让使用者持续拉取同一主版本的最新镜像同时避免标签频繁变动。标签命名约定三类标签的构成规则参照 docs/docker-hub/node-firefox.md 中关于标签结构的说明本次发布涉及的 12 个标签可分为三类1. 完整信息标签全版本 Grid 版本 构建日期selenium/node-firefox:129.0.2-geckodriver-0.36.0-grid-4.34.0-20250727构成browserVersion-geckodriver-driverVersion-grid-gridVersion-buildDate这是信息量最完整的标签精确锁定浏览器、驱动、Grid 与构建日期四个维度适合要求严格可复现的测试环境。2. 组合标签浏览器版本/驱动版本 构建日期129.0.2-geckodriver-0.36.0-20250727浏览器完整版本 驱动完整版本 构建日期129.0.2-20250727浏览器完整版本 构建日期129.0-geckodriver-0.36-20250727短版本组合 构建日期129.0-20250727浏览器短版本 构建日期3. 短版本标签发布期后追加的稳定标签selenium/node-firefox:129.0-geckodriver-0.36-grid-4.34.0-20250727这一组将浏览器短版本、驱动短版本与 Grid 完整版本组合方便在后续小版本补丁发布时保持标签稳定。需要注意本记录中没有生成129.0.2、129.0、129.0.2-geckodriver-0.36.0这类不带构建日期的纯版本标签。从 tag_and_push_browser_images.sh 源码看这类标签仅在RELEASE_OLD_VERSIONfalse即正式发布而非旧版本回溯时才会追加生成。打标签脚本机制tag_and_push_browser_images.sh 的完整执行链路发布日志中的命令指向仓库根目录下的 tag_and_push_browser_images.sh该脚本是本次发布的执行主体。其参数定义位于脚本开头参数位置默认值本次调用值说明VERSION$1无4.34.0Selenium Grid 版本号BUILD_DATE$2无20250727构建日期YYYYMMDDNAMESPACE$3无seleniumDocker Hub 镜像命名空间PUSH_IMAGE$4falsefalse是否推送镜像到仓库BROWSER$5无firefox目标浏览器RELEASE_OLD_VERSION$6falsetrue是否为旧版本发布回溯打标签PLATFORM$7linux/amd64linux/amd64目标平台脚本首先拼出基础标签TAG_VERSION4.34.0-20250727随后进入firefox分支tag_and_push_browser_images.sh依次执行探测浏览器版本docker run --rm selenium/node-firefox:4.34.0-20250727 firefox --version | awk {print $3}得到129.0.2探测驱动版本docker run --rm selenium/node-firefox:4.34.0-20250727 geckodriver --version | awk NR1{print $2}得到0.36.0计算短版本通过short_version()函数tag_and_push_browser_images.sh将完整版本号按.分割后取前两段得到129.0与0.36组装标签数组FIREFOX_TAGS并在RELEASE_OLD_VERSIONfalse时追加不带构建日期的标签遍历打标签对node-firefox与standalone-firefox分别调用retag函数。关键设计在于retag()函数tag_and_push_browser_images.sh它先从已构建的基础镜像${NAMESPACE}/${image}:${TAG_VERSION}派生新标签且支持两种路径——默认用docker tag本地打标签并在PUSH_IMAGEtrue时推送当PROMOTE_TAGStrue时改用docker buildx imagetools create在 registry 间直接复制多架构 manifest避免docker pull只带回本机架构导致标签退化为单架构。这解释了发布日志中每条Tagged输出的来源。镜像底层实现Firefox 129 与 GeckoDriver 0.36.0 如何进入容器镜像的实际构建逻辑位于 NodeFirefox/Dockerfile它以node-base为基础镜像FROM ${NAMESPACE}/${BASE}:${VERSION}以FIREFOX_VERSIONlatest、GECKODRIVER_VERSIONlatest为默认构建参数并在构建时替换为具体版本。Firefox 129 的安装策略对于 Firefox 129.0.2 这一具体版本主版本号 129 136Dockerfile 走的是官方发布包下载路径NodeFirefox/Dockerfile根据架构amd64 → x86_64aarch64 → aarch64拼接下载地址https://download-installer.cdn.mozilla.net/pub/firefox/releases/129.0.2/linux-x86_64/en-US/firefox-129.0.2.deb若返回 404 则回退到.tar.bz2归档包交由 NodeFirefox/install-firefox-package.sh 完成安装——.deb包通过apt-get install -y --allow-downgrades -f安装.tar.bz2/.tar.xz则解压到/opt/firefox-version并软链到/usr/bin/firefox最后执行apt-get upgrade修补依赖中的已知 CVE。对比对于latest/beta-latest/esr-latest等动态版本则走 NodeFirefox/install-firefox-apt.sh 配置的 Mozilla APT 源从源码结构看FIREFOX_MAJOR_VERSION 136后 amd64 架构也统一切换到 APT 路径。此外 NodeFirefox/get_lang_package.sh 会从 Mozilla FTP 为 129.0.2 下载全部语言包langpack-*firefox.mozilla.org.xpi到distribution/extensions目录保证多语言环境可用。GeckoDriver 0.36.0 的安装策略NodeFirefox/Dockerfile 中的 GeckoDriver 安装逻辑首先通过 GitHub releases 的latest重定向解析最新版本号再按架构选择linux64或linux-aarch64压缩包下载解压到/opt/geckodriver-0.36.0后软链为/usr/bin/geckodriver。本次发布正是通过该机制将 0.36.0 版本固化进镜像。浏览器信息注册与进程守护构建尾声Dockerfile 会向/opt/selenium/browsers/firefox/写入name、version、binary_location三个文件NodeFirefox/Dockerfile供 Selenium Grid Node 注册能力时读取其中 binary_location 内容为{moz:firefoxOptions: {binary: ${SE_BROWSER_BINARY_LOCATION:-/usr/bin/firefox}}}容器运行后NodeFirefox/firefox-cleanup.sh 作为 supervisord 守护进程周期性清理残留的firefox-bin进程间隔与进程年龄阈值由SE_BROWSER_LEFTOVERS_INTERVAL_SECS、SE_BROWSER_LEFTOVERS_PROCESSES_SECS控制避免长时间运行的测试集群中堆积僵尸浏览器进程。版本矩阵4.34.0 中 Firefox 129 的定位本次发布记录归档于 CHANGELOG/archived/4.34.0/属于已归档的 Grid 版本。在 CHANGELOG/README.md 维护的版本矩阵中Firefox 129 这一列覆盖了从 4.28.1 到 4.48.0 的多个 Grid 版本且 Firefox 129 与 130、131、132、133、134、135 等版本在 4.34.0 发布时均有对应镜像见archived/4.34.0/firefox_130.md、firefox_131.md等相邻发布记录说明 4.34.0 是一次覆盖多浏览器版本矩阵的批量发布。归档机制的意义在于CHANGELOG 目录中保留最新 Grid 版本如 4.48.0的完整记录而历史版本的记录移入archived/子目录既保证了矩阵可追溯又让最新版本列表保持聚焦。矩阵还明确提示项目并未对每种 Grid 与浏览器版本的组合做完整测试使用者需要依据自身测试需求评估选择。如何选择并使用 Firefox 129 镜像根据 docs/docker-hub/node-firefox.md 的说明Node 模式下的典型启动方式为docker network create grid docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.34.0-20250727 docker run -d --net grid -e SE_EVENT_BUS_HOSTselenium-hub \ --shm-size2g \ selenium/node-firefox:129.0.2-geckodriver-0.36.0-grid-4.34.0-20250727实践建议运行含浏览器的容器务必添加--shm-size2g使用宿主机共享内存避免浏览器崩溃需要精确复现测试环境时使用129.0.2-geckodriver-0.36.0-grid-4.34.0-20250727这类全信息标签希望在 129 主版本内跟随补丁更新时可选用129.0短版本标签验证标签对应的真实版本可用docker run --rm image firefox --version与docker run --rm image geckodriver --version检查这与打标签脚本内部的探测命令完全一致。总结从 CHANGELOG/archived/4.34.0/firefox_129.md 这份发布日志出发可以完整还原 docker-selenium 浏览器镜像的发布链路构建NodeFirefox/Dockerfile→ 版本探测 → 短版本换算 → 多标签生成tag_and_push_browser_images.sh→ 归档入矩阵CHANGELOG/README.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点击查看免费下载相关推荐Mumble Windows 构建环境搭建指南MSVC 与 Visual Studio 的完整配置Mumble Windows 构建环境搭建指南MSVC 与 Visual Studio 的完整配置 Mumble 是一款开源、低延迟、高质量的语音聊天软件。在测试后端云原生容器编排可观测性docker-selenium 发布解析Firefox 108.0.2 GeckoDriver 0.36.0 Selenium Grid 4.34.0 镜像标签生成全流程docker selenium 发布解析Firefox 108.0.2 GeckoDriver 0.36.0 Selenium Grid 4.34.0测试后端云原生容器编排可观测性docker-selenium 归档版本解析4.34.0 下 Firefox 107.0.1 GeckoDriver 0.36.0 镜像标签全解读docker selenium 归档版本解析4.34.0 下 Firefox 107.0.1 GeckoDriver 0.36.0 镜像标签全解读 本篇以测试后端云原生容器编排可观测性上一篇gperftools 项目内嵌 GoogleTest 官方示例全解析从基础断言到 Listener 高级定制下一篇Brutegram vs 其他Instagram破解工具功能对比与优劣势分析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考