ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

docker-selenium Firefox 141 发布记录解析:镜像标签命名规范与浏览器自动化部署实战

docker-selenium Firefox 141 发布记录解析:镜像标签命名规范与浏览器自动化部署实战 测试后端云原生容器编排可观测性【免费下载链接】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.48.0 版本 Firefox 141.0.3 发布记录CHANGELOG/4.48.0/firefox_141.md为核心剖析本次发布的版本组合、标签生成机制与镜像矩阵并结合仓库中的发布脚本与 NodeFirefox 镜像源码讲清楚如何选择正确的 Firefox 镜像标签以及标签背后浏览器、驱动与 Grid 三者版本的对应关系帮助你基于 docker-selenium 搭建可复现、可追溯的 Firefox 自动化测试环境。一、发布记录速览本次 Firefox 141 发布包含哪些版本信息firefox_141.md是 Selenium Grid 4.48.0 版本发布周期的浏览器发布记录之一同一批次还包括 chrome-for-testing、edge、firefox_140 等记录。记录本质是一次镜像打标签tagging过程的可审计日志核心信息如下组件版本Selenium Grid 版本4.48.0-20260909Firefox 浏览器141.0.3Firefox 短版本141.0GeckoDriver0.37.1GeckoDriver 短版本0.37构建日期20260909镜像命名空间selenium日志完整列出了对selenium/node-firefox与selenium/standalone-firefox两组镜像追加的 12 个标签。这些标签并非随意命名而是由项目根目录的 tag_and_push_browser_images.sh 脚本按固定规则自动生成详见下文第三节。需要说明的是文档中的日期20260909为发布构建日期仅代表该发布记录的构建批次并非当前系统时间。二、理解标签体系如何解读与选择 Firefox 镜像标签2.1 标签结构总览本次发布打出的 12 个标签可归纳为四类模式其中TAG_VERSION即4.48.0-20260909Selenium Grid 版本 构建日期标签模式示例node-firefox说明browser-driver-grid完整长标签141.0.3-geckodriver-0.37.1-grid-4.48.0-20260909完整版本矩阵浏览器 驱动 Gridbrowser-driver-date141.0.3-geckodriver-0.37.1-20260909浏览器 驱动 构建日期browser-date141.0.3-20260909浏览器 构建日期短版本系列四类模式分别以141.0与0.37代替完整版本141.0-geckodriver-0.37-grid-4.48.0-20260909、141.0-geckodriver-0.37-20260909、141.0-20260909便于在浏览器/驱动小版本间快速升级2.2 短版本Short version的由来日志中 Short Firefox version - 141.0 与 Short GeckoDriver version - 0.37 由脚本内的short_version()函数生成它按.拆分版本号仅保留前两段主版本 次版本。这样141.0标签会随同系列小版本如 141.0.1、141.0.2、141.0.3的后续发布自动指向最新镜像适合想要锁定大版本但跟随小版本更新的场景。2.3 长版本标签的用途形如141.0.3-geckodriver-0.37.1-grid-4.48.0-20260909的完整标签将浏览器、驱动、Grid、构建日期四者全部锁定是可完全复现的选择无论何时拉取得到的都是同一份经过验证的组合。官方推荐在生产环境使用完整标签固定版本而不是latest见 docs/docker-hub/node-firefox.md 与 docs/docker-hub/standalone-firefox.md。2.4 关于旧版本标签注意到141与0.37这类不带日期的短标签在本次日志中并未出现。这是因为脚本逻辑当RELEASE_OLD_VERSION参数为false本次调用第 6 个参数即false时才会追加纯浏览器版本标签141.0.3、141.0与浏览器驱动标签141.0.3-geckodriver-0.37.1、141.0-geckodriver-0.37。这 4 个标签留给旧版本发布流程使用避免与最新版标签互相覆盖。三、深入源码tag_and_push_browser_images.sh 如何工作发布记录由仓库根目录的 tag_and_push_browser_images.sh 执行生成。脚本针对firefox分支的关键流程如下3.1 参数与版本探测VERSION$1 # 4.48.0 BUILD_DATE$2 # 20260909 NAMESPACE$3 # selenium PUSH_IMAGE${4:-false} BROWSER$5 # firefox RELEASE_OLD_VERSION${6:-false} PLATFORM${7:-linux/amd64}脚本通过docker run临时启动已构建的node-firefox:${TAG_VERSION}镜像来探测实际版本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})随后对两组镜像执行retag node-firefox与retag standalone-firefox为每个标签追加版本。3.2 双模式打标签本地 retag 与 registry 级 promoteretag()函数支持两种路径常规路径docker tag本地复制镜像并可选docker pushPUSH_IMAGEtrue时推送promote 路径当PROMOTE_TAGStrue时直接使用docker buildx imagetools create在 registry 之间复制多架构 manifestindex因为 release 流程此时直接复用测试过的镜像而非本地重建脚本头部注释对此有详细说明。3.3 与 Makefile 的联动Makefile 中tag_and_push_firefox_images目标第 796 行正是以同样参数调用该脚本./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) firefox $(RELEASE_OLD_VERSION)而tag_and_push_browser_images总目标第 781 行会依次串联 chrome、chrome-for-testing、chromium、edge、firefox 五个浏览器分支因此每轮发布各浏览器会并行产出同构的标签矩阵。四、镜像内部实现node-firefox 如何构建 Firefox 141 GeckoDriver 0.37.1发布日志中的版本组合并非凭空生成而是由 NodeFirefox/Dockerfile 的构建参数决定4.1 Firefox 安装策略Dockerfile 定义FIREFOX_VERSIONlatest等 ARG。amd64 架构或版本 ≥ 136 时优先从 Mozilla 官方 APT 仓库安装install-firefox-apt.sh 配置了packages.mozilla.org源与固定指纹校验、Pin-Priority: 1000的 apt 偏好否则通过 install-firefox-package.sh 下载官方.deb/.tar.bz2/.tar.xz包安装。对 141 这类新版本amd64 走 APT 路径、aarch64 走下载路径脚本内按dpkg --print-architecture自动判别x86_64与aarch64架构包。4.2 GeckoDriver 安装GECKODRIVER_VERSIONlatest时Dockerfile 会解析mozilla/geckodriver最新 release下载对应架构的geckodriver-${GK_VERSION}-${DRIVER_ARCH}.tar.gz解压到/opt/geckodriver-${GK_VERSION}并软链到/usr/bin/geckodriver因此镜像内版本可通过geckodriver --version探测——这正是脚本 3.1 节获取 0.37.1 的来源。4.3 浏览器信息与运行时环境镜像构建后段还会固化浏览器元数据NodeFirefox/Dockerfile写入/opt/selenium/browsers/firefox/{name,version,binary_location}其中 binary_location 预置moz:firefoxOptions.binary为${SE_BROWSER_BINARY_LOCATION:-/usr/bin/firefox}允许通过环境变量自定义浏览器路径对应 ENV_VARIABLES.md 中的SE_BROWSER_BINARY_LOCATION。同时默认开启SE_NODE_ENABLE_MANAGED_DOWNLOADStrue由 NodeBase/start-selenium-node.sh 在启动时追加--enable-managed-downloads让 Node 自动管理会话下载文件。五、实战运行 Firefox 141 镜像并验证版本5.1 Standalone 模式单容器 Griddocker run -d -p 4444:4444 -p 7900:7900 \ --shm-size2g \ selenium/standalone-firefox:141.0.3-geckodriver-0.37.1-grid-4.48.0-20260909将 WebDriver 测试指向http://localhost:4444即可如需 VNC 观察访问http://localhost:7900/?autoconnect1resizescalepasswordsecret。5.2 Node Hub 模式docker network create grid docker run -d -p 4442-4444:4442-4444 \ --net grid --name selenium-hub selenium/hub:4.48.0-20260909 docker run -d --net grid \ -e SE_EVENT_BUS_HOSTselenium-hub \ --shm-size2g \ selenium/node-firefox:141.0.3-geckodriver-0.37.1-grid-4.48.0-20260909使用 PowerShell 时换行符改用反引号。浏览器容器务必加--shm-size2g否则浏览器渲染进程可能因共享内存不足而崩溃。结束后可用docker network rm grid清理网络。5.3 验证镜像内版本docker run --rm selenium/node-firefox:141.0.3-geckodriver-0.37.1-grid-4.48.0-20260909 firefox --version docker run --rm selenium/node-firefox:141.0.3-geckodriver-0.37.1-grid-4.48.0-20260909 geckodriver --version输出应与发布记录一致Firefox 141.0.3、GeckoDriver 0.37.1可快速确认镜像组合与预期相符。5.4 会话回收配置NodeFirefox 默认通过 firefox-cleanup.sh 定期清理残留的firefox-bin进程由 firefox-cleanup.conf 交由 supervisord 托管相关阈值可用环境变量调整SE_BROWSER_LEFTOVERS_PROCESSES_SECS默认 7200清理运行超过该秒数的 Firefox 进程SE_BROWSER_LEFTOVERS_INTERVAL_SECS默认 3600清理守护循环间隔SE_BROWSER_LEFTOVERS_TEMPFILES_DAYS默认 1临时文件保留天数。详见 ENV_VARIABLES.md。六、版本追踪与回归验证本次发布日志位于 CHANGELOG/4.48.0/firefox_141.md与同批次 firefox_140.mdFirefox 140.0.4 GeckoDriver 0.37.1对比可见GeckoDriver 保持 0.37.1 不变仅浏览器由 140.0.4 升级到 141.0.3标签矩阵结构完全一致。若需回溯更早版本CHANGELOG/archived 目录归档了旧发布记录可作为镜像版本回归的对照依据。这种发布记录 标签矩阵 源码探测逻辑三位一体的设计使得每个镜像版本都可审计、可复现也让使用者在挑选 Firefox 镜像标签时能准确预判浏览器、驱动与 Grid 之间的兼容组合。赞分享测试后端云原生容器编排可观测性【免费下载链接】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 130 镜像标签命名规则与浏览器镜像发布流程解析docker selenium 4.48.0 发布 Firefox 130 镜像标签命名规则与浏览器镜像发布流程解析 本篇技术解读围绕 docker sele测试后端云原生容器编排可观测性PHPStan 错误标识符 class.toStringDeprecated 详解当字符串转换命中已弃用的 __toString()PHPStan 错误标识符 class.toStringDeprecated 详解当字符串转换命中已弃用的 __toString 本文是 PHPStan 错误测试后端云原生容器编排可观测性docker-selenium 4.28.1 发布记录解析Chrome 99 镜像的版本映射与标签命名规范docker selenium 4.28.1 发布记录解析Chrome 99 镜像的版本映射与标签命名规范 本篇技术指南以 docker selenium 仓测试后端云原生容器编排可观测性上一篇WebGL-Fluid-Simulation中的流体压力迭代求解提升物理精度下一篇crypto-js版本更新策略指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表