测试后端云原生容器编排可观测性【免费下载链接】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 版本的 Firefox 122.0.1 发布记录 为核心完整还原tag_and_push_browser_images.sh脚本为selenium/node-firefox与selenium/standalone-firefox生成全部镜像标签的流程。你将掌握 Selenium Grid 镜像标签命名规范、脚本参数语义、Firefox 与 GeckoDriver 版本配对方式以及如何在实际项目中正确选取与锁定镜像标签。这份发布记录还原了什么归档于CHANGELOG/archived/4.34.0/目录下的firefox_122.md是一份真实的构建产物日志记录了 2025-07-27 这一天发布流水线针对 Selenium Grid 4.34.0 版本为 Firefox 122.0.1 批量打标签的完整输出。原文如下./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 - 122.0.1 Short Firefox version - 122.0 GeckoDriver version - 0.36.0 Short GeckoDriver version - 0.36 Tagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-grid-4.34.0-20250727 Tagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-grid-4.34.0-20250727 Tagged selenium/node-firefox:122.0.1-geckodriver-0.36.0-20250727 Tagged selenium/standalone-firefox:122.0.1-geckodriver-0.36.0-20250727 Tagged selenium/node-firefox:122.0.1-20250727 Tagged selenium/standalone-firefox:122.0.1-20250727 Tagged selenium/node-firefox:122.0-geckodriver-0.36-grid-4.34.0-20250727 Tagged selenium/standalone-firefox:122.0-geckodriver-0.36-grid-4.34.0-20250727 Tagged selenium/node-firefox:122.0-geckodriver-0.36-20250727 Tagged selenium/standalone-firefox:122.0-geckodriver-0.36-20250727 Tagged selenium/node-firefox:122.0-20250727 Tagged selenium/standalone-firefox:122.0-20250727这份日志透露了三层信息本次发布的三组件版本组合Selenium Grid Server 4.34.0、Firefox 122.0.1、GeckoDriver 0.36.0、镜像标签的完整命名空间6 组标签 × node-firefox/standalone-firefox 两种镜像以及脚本位置参数语义。下文逐一拆解。脚本参数与执行流程命令./tag_and_push_browser_images.sh 4.34.0 20250727 selenium false firefox true共传入 6 个位置参数与脚本开头tag_and_push_browser_images.sh的声明一一对应位置参数本次取值含义1VERSION4.34.0Selenium Grid 版本号2BUILD_DATE20250727构建日期与版本号拼接为4.34.0-202507273NAMESPACEselenium镜像命名空间仓库前缀4PUSH_IMAGEfalse是否执行docker pushfalse表示仅本地打标签5BROWSERfirefox目标浏览器决定走case分支6RELEASE_OLD_VERSIONtrue是否为旧版本补发标签决定是否生成无日期的纯版本标签该脚本由 Makefile 的tag_and_push_firefox_imagestarget 调用tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) firefox $(RELEASE_OLD_VERSION)属于发布流水线中为所有浏览器镜像统一打标签的一部分——同一套脚本以不同BROWSER参数分别服务 chrome、chromium、edge、firefox、chrome-for-testing 五种镜像家族。版本探测环节脚本在打标签前会先运行已构建好的镜像来探测实际安装的浏览器与驱动版本tag_and_push_browser_images.sh而不是直接相信构建参数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 - 122.0.1、GeckoDriver version - 0.36.0两行的来源以4.34.0-20250727为源标签的 node-firefox 镜像其内部二进制自报的版本号被当作标签的事实依据。这样可确保标签始终与实际安装的软件版本严格一致避免人工填写版本号造成的漂移。Short 版本截断逻辑脚本中的short_version()函数tag_and_push_browser_images.sh将完整版本号按点号拆分后仅保留前两段function short_version() { local __long_version$1 local __version_split(${__long_version//./ }) echo ${__version_split[0]}.${__version_split[1]} }因此122.0.1 → 122.00.36.0 → 0.36。这种长版本 短版本双轨标签的设计是为了让使用者在精确锁定补丁号与跟随同主/次版本的最新构建之间自由选择。六组标签的语义逐一解析本次发布为每个镜像生成了 6 组标签全部携带构建日期。下表以selenium/node-firefox为例selenium/standalone-firefox完全同构标签后缀包含信息典型用途122.0.1-geckodriver-0.36.0-grid-4.34.0-20250727Firefox 补丁号 GeckoDriver 补丁号 Grid 版本 构建日期全要素精确锁定可复现性最强122.0.1-geckodriver-0.36.0-20250727Firefox 补丁号 GeckoDriver 补丁号 构建日期锁定浏览器与驱动补丁级版本122.0.1-20250727Firefox 补丁号 构建日期仅锁定 Firefox 补丁号122.0-geckodriver-0.36-grid-4.34.0-20250727次版本 短驱动版本 Grid 版本 构建日期短版本的全要素组合122.0-geckodriver-0.36-20250727次版本 短驱动版本 构建日期跟随 122.0 系列最新补丁122.0-20250727次版本 构建日期最简化的可复现标签这些标签由脚本firefox分支中的FIREFOX_TAGS数组生成tag_and_push_browser_images.sh随后对每个标签依次调用retag node-firefox与retag standalone-firefoxtag_and_push_browser_images.sh。retag()函数tag_and_push_browser_images.sh在PUSH_IMAGEfalse时仅执行docker tag并在本地缓存中新增一个别名因此日志中的 12 行Tagged实际上是同一镜像的 12 个别名。RELEASE_OLD_VERSIONtrue 意味着什么脚本在RELEASE_OLD_VERSIONtrue时不再生成不带构建日期的纯版本标签如122.0.1-geckodriver-0.36.0、122.0.1、122.0等对应 tag_and_push_browser_images.sh 中被跳过的分支。原因从归档路径即可理解4.34.0 已是历史版本Firefox 122.0.1 在更新的 Grid 版本中已拥有主发布标签若此处再打上无日期的纯版本标签就会覆盖新版本的标签造成冲突。因此旧版本补发一律只生成带YYYYMMDD的标签与新版镜像的标签互不干扰——这正是该 CHANGELOG 文件被归档到archived/4.34.0/目录的原因。作为对照在较新的 4.48.0 发布记录 中Firefox 122.0.1 依然出现但 GeckoDriver 已升级为 0.37.1可见同一浏览器版本可以随驱动升级在不同 Grid 版本中重新打包选择标签时必须同时关注浏览器与驱动两者的版本。标签背后的构建事实Firefox 122.0.1 与 GeckoDriver 0.36.0 如何进入镜像Firefox 安装NodeFirefox/Dockerfile 通过ARG FIREFOX_VERSION默认latest决定安装方式对于数值版本如 122.0.1优先从 Mozilla CDN 下载对应的.deb包若下载返回 404 则回退到.tar.bz2源码包交由 install-firefox-package.sh 完成安装——该脚本会根据 URL 后缀分别走 deb 安装、tar.bz2/tar.xz 解压安装三条路径并在解压后将二进制软链到/usr/bin/firefox。需要注意一个架构前提Dockerfile 的版本判断逻辑NodeFirefox/Dockerfile规定只有在 amd64 架构、或使用-latest系列占位版本、或主版本号 ≥ 136 时才执行上述精确下载安装若是在 aarch64 架构且指定了 136 以下的数值版本122 正属于此列则会回退安装nightly-latest。因此122.0.1 标签对应的 Firefox 精确安装路径仅在 amd64 平台上成立跨架构使用时需留意这一限制。GeckoDriver 安装NodeFirefox/Dockerfile 从 mozilla/geckodriver 的 GitHub Releases 按架构amd64 →linux64aarch64 →linux-aarch64下载geckodriver-0.36.0-linux64.tar.gz解压后以geckodriver-$GK_VERSION形式存放到/opt并软链到/usr/bin/geckodriver之后通过firefox --version与geckodriver --version的输出写入/opt/selenium/browsers/firefox/下的name、version、binary_location三个文件NodeFirefox/Dockerfile供 Selenium Grid 的 Node 配置读取。镜像同时声明了SE_OTEL_SERVICE_NAMEselenium-node-firefox与SE_NODE_ENABLE_MANAGED_DOWNLOADStrue两个环境变量。这解释了为什么日志中探测到的版本122.0.1 / 0.36.0与标签完全一致标签来源于镜像内部二进制自报版本而二进制版本由 Dockerfile 的安装逻辑保证。如何拉取与使用这些镜像在 Grid 中运行 node-firefox按 docs/docker-hub/node-firefox.md 的指引先创建网络并启动 Hub再启动 Nodedocker network create grid docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:latest docker run -d --net grid -e SE_EVENT_BUS_HOSTselenium-hub \ --shm-size2g \ selenium/node-firefox:122.0-geckodriver-0.36-grid-4.34.0-20250727随后将 WebDriver 测试指向http://localhost:4444即可。运行浏览器镜像时务必携带--shm-size2g以使用宿主机共享内存若需观察容器内运行画面可访问http://localhost:7900/?autoconnect1resizescalepasswordsecret。按标签选型建议追求稳定复现使用最长的全要素标签122.0.1-geckodriver-0.36.0-grid-4.34.0-20250727它与 CI 产物一一对应任何环境拉取结果完全一致跟随补丁更新使用122.0-20250727这类短版本标签在主版本线内灵活漂移区分 Node 与 Standalone需要独立 Selenium Server 时选用standalone-firefox系列需要接入已有 Grid Hub 时选用node-firefox系列两者标签后缀完全一致可无缝切换。小结通过这份 4.34.0 的发布日志可以完整还原 docker-selenium 镜像发布的三个关键事实其一镜像标签由 tag_and_push_browser_images.sh 依据镜像内二进制自报版本动态生成保证标签与内容严格一致其二长/短双轨 构建日期的标签矩阵详见 docs/docker-hub/node-firefox.md 中的 Tag 结构说明兼顾了精确锁定与便捷漂移两种使用诉求其三RELEASE_OLD_VERSIONtrue的参数设计让旧版本补发只生成带日期的标签从而避免覆盖新版本主标签。对于任何需要精确锁定浏览器版本的自动化测试团队而言直接使用本文给出的全要素标签即可获得确定性的运行环境。赞分享测试后端云原生容器编排可观测性【免费下载链接】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点击查看免费下载相关推荐Texture 发布流程完全指南从 Changelog 生成到 CocoaPods 发布Texture 发布流程完全指南从 Changelog 生成到 CocoaPods 发布 本篇技术指南以 RELEASE.md https://link.gi测试后端云原生容器编排可观测性docker-selenium 4.34.0 Firefox 119 镜像发布全解析从打标脚本到镜像标签规范docker selenium 4.34.0 Firefox 119 镜像发布全解析从打标脚本到镜像标签规范 导读 本篇以 docker selenium 仓测试后端云原生容器编排可观测性Selenium Grid 4.30.0 的 Chrome 134 镜像发布全解析tag_and_push_browser_images 脚本与 12 个镜像标签命名规范Selenium Grid 4.30.0 的 Chrome 134 镜像发布全解析tag_and_push_browser_images 脚本与 12 个镜像测试后端云原生容器编排可观测性上一篇拆解MindSpeed LLM4层架构与核心模块看懂昇腾大模型训练框架的设计下一篇QKeyMapper特殊映射键参数速查SendText、Run、SetVolume等20隐藏功能全盘点创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考