
测试后端云原生容器编排可观测性【免费下载链接】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 140.0.4 镜像发布记录CHANGELOG/4.48.0/firefox_140.md为线索完整拆解浏览器镜像的标签命名体系、版本探测机制与镜像构建链路并给出基于node-firefox/standalone-firefox镜像的实际部署运行方案。读完本文你将能准确读懂任何一个浏览器版本 changelog 的产物清单并能在自己的测试环境中精确选用对应标签、复现版本验证流程。一次 Firefox 140 发布生成了哪些镜像标签发布记录的核心是一次自动化打标签命令的完整执行输出。本次发布的版本组合为Selenium Grid 版本4.48.0-20260909Grid 版本 构建日期Firefox 版本140.0.4短版本140.0GeckoDriver 版本0.37.1短版本0.37触发命令与全部输出如下./tag_and_push_browser_images.sh 4.48.0 20260909 selenium false firefox true Tagging images for browser firefox, version 4.48.0, build date 20260909, namespace selenium Selenium Grid version - 4.48.0-20260909 Firefox version - 140.0.4 Short Firefox version - 140.0 GeckoDriver version - 0.37.1 Short GeckoDriver version - 0.37 Tagged selenium/node-firefox:140.0.4-geckodriver-0.37.1-grid-4.48.0-20260909 Tagged selenium/standalone-firefox:140.0.4-geckodriver-0.37.1-grid-4.48.0-20260909 Tagged selenium/node-firefox:140.0.4-geckodriver-0.37.1-20260909 Tagged selenium/standalone-firefox:140.0.4-geckodriver-0.37.1-20260909 Tagged selenium/node-firefox:140.0.4-20260909 Tagged selenium/standalone-firefox:140.0.4-20260909 Tagged selenium/node-firefox:140.0-geckodriver-0.37-grid-4.48.0-20260909 Tagged selenium/standalone-firefox:140.0-geckodriver-0.37-grid-4.48.0-20260909 Tagged selenium/node-firefox:140.0-geckodriver-0.37-20260909 Tagged selenium/standalone-firefox:140.0-geckodriver-0.37-20260909 Tagged selenium/node-firefox:140.0-20260909 Tagged selenium/standalone-firefox:140.0-20260909本次发布共为node-firefox与standalone-firefox两个镜像各生成 6 个标签合计 12 个标签。同一组镜像标签同时出现在 CHANGELOG/README.md 的「Selenium Grid x Browser Version Matrix」矩阵表中矩阵中的 ✓ 即链接到本文所述的这份 changelog 记录方便使用者按 Grid 版本 × 浏览器版本快速定位到具体镜像标签。命令六参数逐项解读发布的原始出处是仓库根目录的 tag_and_push_browser_images.sh 脚本对应 Makefile 中的tag_and_push_firefox_images目标见 Makefile。该脚本以位置参数接收发布配置各参数含义如下位置参数值含义$14.48.0Selenium Grid 版本号VERSION$220260909构建日期BUILD_DATE与版本号拼接为TAG_VERSION4.48.0-20260909$3selenium镜像命名空间NAMESPACE决定selenium/node-firefox、selenium/standalone-firefox前缀$4false是否推送镜像PUSH_IMAGE默认false为true时打标签后执行docker push$5firefox浏览器类型脚本按此进入case分支$6trueRELEASE_OLD_VERSION默认false在脚本入口处有参数默认值的兜底逻辑tag_and_push_browser_images.shVERSION$1 BUILD_DATE$2 NAMESPACE$3 PUSH_IMAGE${4:-false} BROWSER$5 RELEASE_OLD_VERSION${6:-false}需要特别说明的是第 6 个参数RELEASE_OLD_VERSIONtrue当它为false时脚本会额外生成一组不带构建日期的滚动标签如140.0.4、140.0、140.0.4-geckodriver-0.37.1、140.0-geckodriver-0.37而当其为true本次发布的情况时这些不带日期的短标签被跳过只生成带构建日期的标签从而避免旧版本发布时覆盖「最新版」语义的滚动标签。本次输出恰好 12 行标签6 个/镜像与RELEASE_OLD_VERSIONtrue的行为完全吻合。六个标签的命名体系解码6 个标签并非随意生成而是由脚本中的FIREFOX_TAGS数组tag_and_push_browser_images.sh按固定模板构造随后对node-firefox与standalone-firefox各执行一次retag。按语义可划分为三组每组均同时提供「完整版本」与「短版本」两种粒度标签模板本次生成结果语义${FIREFOX_VERSION}-geckodriver-${GECKODRIVER_VERSION}-grid-${TAG_VERSION}140.0.4-geckodriver-0.37.1-grid-4.48.0-20260909浏览器完整版本 驱动完整版本 Grid 完整版本信息最全${FIREFOX_VERSION}-geckodriver-${GECKODRIVER_VERSION}-${BUILD_DATE}140.0.4-geckodriver-0.37.1-20260909浏览器 驱动完整版本 构建日期${FIREFOX_VERSION}-${BUILD_DATE}140.0.4-20260909浏览器完整版本 构建日期${FIREFOX_SHORT_VERSION}-geckodriver-${GECKODRIVER_SHORT_VERSION}-grid-${TAG_VERSION}140.0-geckodriver-0.37-grid-4.48.0-20260909短版本组合Grid 全版本${FIREFOX_SHORT_VERSION}-geckodriver-${GECKODRIVER_SHORT_VERSION}-${BUILD_DATE}140.0-geckodriver-0.37-20260909短版本组合 构建日期${FIREFOX_SHORT_VERSION}-${BUILD_DATE}140.0-20260909最简短版本 构建日期短版本由short_version()函数截取前两段点分号得到tag_and_push_browser_images.sh例如140.0.4 → 140.0、0.37.1 → 0.37。这套命名规范与 docs/docker-hub/node-firefox.md 中描述的标签结构一致既可以只用140.0-20260909这样的精简标签锁定浏览器版本也可以用140.0.4-geckodriver-0.37.1-grid-4.48.0-20260909精确锁定浏览器、驱动与 Grid 三方版本。retag()函数tag_and_push_browser_images.sh是标签落地的执行者默认通过docker tag在本地为源镜像selenium/node-firefox:4.48.0-20260909增加新标签并在PUSH_IMAGEtrue时逐个docker push当发布走「镜像提升promotion」路径时PROMOTE_TAGStrue则改用docker buildx imagetools create在镜像索引层面完成 registry 到 registry 的打标签避免单架构拉取破坏多架构 manifest。版本探测脚本如何获知 Firefox 与 GeckoDriver 的精确版本一个容易被忽略的细节是脚本并不硬编码版本号而是通过docker run直接运行待发布镜像内的二进制来探测真实版本firefox 分支见 tag_and_push_browser_images.shFIREFOX_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})即先构建出selenium/node-firefox:4.48.0-20260909再进入容器分别执行firefox --version与geckodriver --version用awk抽取第 3 个字段Mozilla Firefox 140.0.4中的140.0.4与首行第 2 个字段geckodriver 0.37.1中的0.37.1。这意味着 changelog 中记录的版本号是构建产物的真实实测值标签永远与镜像内的实际浏览器/驱动版本严格对应不会出现标签与内容漂移。这一探测方式同样可用于用户侧的版本核验见后文。镜像构建链路Firefox 与 GeckoDriver 从哪来node-firefox镜像的构建定义位于 NodeFirefox/Dockerfile构建目标在 Makefilefirefox_only→firefox→standalone_firefox。镜像中两处与本文版本直接相关的关键实现Firefox 安装NodeFirefox/Dockerfile通过构建参数FIREFOX_VERSION默认latest与FIREFOX_DOWNLOAD_URL控制安装来源。对 Firefox 136 及以上版本本次的 140.0.4 即属此类在 amd64 架构下从 Mozilla 官方 CDN 下载对应版本的.deb安装包探测到 404 时回退到.tar.bz2对更早版本或非 amd64 架构则走 apt 安装路径。安装完成后还会调用get_lang_package.sh下载语言包并执行一次apt-get upgrade修复 Firefox 依赖的已知 CVE。GeckoDriver 安装NodeFirefox/Dockerfile默认从 geckodriver 最新 release 解析版本GECKODRIVER_VERSIONlatest时通过重定向跟踪releases/latest得到实际版本按linux64/linux-aarch64选择平台压缩包下载解压到/opt/geckodriver-version并以符号链接暴露为/usr/bin/geckodriver。本次发布的 0.37.1 正是该过程解析并固定的版本。浏览器信息落盘NodeFirefox/Dockerfile构建期将firefox名称、实测版本号以及moz:firefoxOptions.binary指向的二进制路径写入/opt/selenium/browsers/firefox/目录供 Selenium Grid Node 的配置生成逻辑GENERATE_CONFIGtrue自动发现浏览器与驱动能力无需手工编写 capability 配置。实战拉取并运行 Firefox 140 镜像方式一Node 模式接入 Selenium Gridnode-firefox镜像需要与 Hub或 Router配合使用。推荐使用完整标签锁定浏览器与 Grid 版本而不是latest。以本此发布为例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:140.0.4-geckodriver-0.37.1-grid-4.48.0-20260909随后将 WebDriver 测试指向http://localhost:4444即可。其中SE_EVENT_BUS_HOST用于告诉 Node 事件总线所在容器ENV_VARIABLES.md--shm-size2g是运行所有含浏览器镜像的推荐参数避免容器默认共享内存过小导致浏览器崩溃。需要观察容器内运行情况时可访问 noVNC 会话http://localhost:7900/?autoconnect1resizescalepasswordsecret。Grid 使用完毕后执行docker network rm grid清理网络。若使用 Docker Compose仓库根目录的 docker-compose-v3.yml 给出了 Hub 多 Node 的完整编排示例其中firefox服务即selenium/node-firefox将镜像标签替换为本文发布的4.48.0-20260905或你自己的4.48.0-build-date版本即可直接docker compose -f docker-compose-v3.yml up -d启动。方式二Standalone 单机模式standalone-firefox将 Grid 的 Router、Distributor、Session Map、Node 等组件与 Firefox 打包进同一容器无需单独启动 Hubdocker run -d -p 4444:4444 --shm-size2g \ selenium/standalone-firefox:140.0-20260909测试同样指向http://localhost:4444。Standalone 镜像基于node-firefox构建Makefile 中standalone_firefox_only以BASEnode-firefox为构建参数因此浏览器与驱动版本与 Node 镜像完全一致。验证镜像内实际版本在运行任何测试之前可以用与发布脚本相同的手法核验镜像内版本docker run --rm selenium/node-firefox:140.0.4-20260909 firefox --version docker run --rm selenium/node-firefox:140.0.4-20260909 geckodriver --version输出应分别为Mozilla Firefox 140.0.4与geckodriver 0.37.1的版本行与标签声明的版本严格一致。关键环境变量与自定义能力在 Node/Standalone 之上进行二次定制时以下变量与本次主题直接相关详见 ENV_VARIABLES.mdSE_EVENT_BUS_HOSTNode 模式必须设置指向 Hub/Router 所在容器名用于 Grid 组件间的通信。SE_NODE_GRID_URLNode 配置中 Grid 整体的对外地址通常为 Hub 或 Router 的地址对应--grid-url参数。SE_BROWSER_BINARY_LOCATION浏览器二进制路径。当你在官方镜像之上自行安装其他位置的 Firefox 时可通过该变量将 Node 驱动配置指向新的二进制路径默认值为/usr/bin/firefox配合GENERATE_CONFIGtrue仍可自动生成驱动配置。SE_OTEL_SERVICE_NAMENode 镜像默认设置为selenium-node-firefox用于 OpenTelemetry 服务标识。SE_NODE_ENABLE_MANAGED_DOWNLOADSNodeFirefox 镜像默认开启托管下载能力NodeFirefox/Dockerfile。多架构、推送与 GHCR 镜像的注意事项本次命令中PUSH_IMAGEfalse表示只完成本地docker tag不推送发布流水线会在后续步骤以docker push或 buildx imagetools 方式将标签同步到 Docker Hub 与 GHCR。脚本支持PLATFORM环境变量默认linux/amd64构建与探测时可指定目标架构tag_and_push_browser_images_ghcrMakefile负责将浏览器镜像标签镜像到 GHCR。Firefox 的node-firefox/standalone-firefox同时支持 amd64 与 arm64 架构这一点与仅支持 amd64 的 Edge、Chrome for Testing 不同多架构场景下优先使用带完整grid-version-date后缀的标签其 manifest 列表通常覆盖更全。小结本文以 Selenium Grid 4.48.0 的 Firefox 140.0.4 发布记录为核心完整还原了 12 个镜像标签的生成逻辑、六参数命令语义、容器内版本探测机制与镜像构建链路并给出了 Node 与 Standalone 两种运行模式下的可执行方案。理解这套标签体系后你在 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点击查看免费下载相关推荐Loco 快速上手指南用 Rust 构建 Web 应用的 Rust on Rails 框架Loco 快速上手指南用 Rust 构建 Web 应用的 Rust on Rails 框架 Loco 是一个深受 Ruby on Rails 启发的 Ru测试后端云原生容器编排可观测性Docker 一键部署 JRebel 激活服务器jrebel-license-active-server 容器化实战Docker 一键部署 JRebel 激活服务器jrebel license active server 容器化实战 在 Java 开发圈里JRebel 是测试后端云原生容器编排可观测性单图 0.5 秒生成 3D 网格TripoSR 调参笔记单图 0.5 秒生成 3D 网格TripoSR 调参笔记 手里只有一张白底产品图需求方却要在网页里 360° 旋转查看它。手工建模要排期外包要报价而 T测试后端云原生容器编排可观测性上一篇Google Mobile Ads SDK错误处理与调试终极解决方案指南下一篇FALdetector命令行参数全解析从输入路径到输出结果的每一个设置都在这里创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考