资讯详情

Selenium Docker 镜像发布实录:Firefox 110.0.1 + GeckoDriver 0.36.0 的 20 个标签生成全解析

📅 2026/10/6 7:24:21 | 华诺云谱 👁 阅读
Selenium Docker 镜像发布实录:Firefox 110.0.1 + GeckoDriver 0.36.0 的 20 个标签生成全解析
测试后端云原生容器编排可观测性【免费下载链接】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点击查看免费下载本篇文章以仓库发布归档文档CHANGELOG/archived/4.29.0/firefox_110.md为骨架逐行拆解 Selenium 官方容器项目在 4.29.0 版本中为 Firefox 110 生成并推送的全部镜像标签你将掌握tag_and_push_browser_images.sh脚本的完整调用参数、长短版本号推导规则、四组共 20 个标签的命名规律以及这些标签背后 Firefox 与 GeckoDriver 的安装链路NodeFirefox/Dockerfile、install-firefox-package.sh、install-firefox-apt.sh如何支撑浏览器 驱动 Grid 构建日期的多维版本矩阵。一、归档文档讲了什么一次完整的 Firefox 镜像打标签运行记录CHANGELOG/archived/4.29.0/firefox_110.md是发布归档目录下的一份命令运行实录全文即一条脚本调用命令与其 21 行标准输出。这是 docker-selenium 项目在每个版本发布周期内自动生成的记录文件用于证明某个浏览器版本已被正确打包并打上全部约定标签。原始文档内容如下./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true Tagging images for browser firefox, version 4.29.0, build date 20250303, namespace selenium Selenium Grid version - 4.29.0-20250303 Firefox version - 110.0.1 Short Firefox version - 110.0 GeckoDriver version - 0.36.0 Short GeckoDriver version - 0.36 Tagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-grid-4.29.0-20250303 Tagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-grid-4.29.0-20250303 Tagged selenium/node-firefox:110.0.1-geckodriver-0.36.0-20250303 Tagged selenium/standalone-firefox:110.0.1-geckodriver-0.36.0-20250303 Tagged selenium/node-firefox:110.0.1-20250303 Tagged selenium/standalone-firefox:110.0.1-20250303 Tagged selenium/node-firefox:110.0-geckodriver-0.36-grid-4.29.0-20250303 Tagged selenium/standalone-firefox:110.0-geckodriver-0.36-grid-4.29.0-20250303 Tagged selenium/node-firefox:110.0-geckodriver-0.36-20250303 Tagged selenium/standalone-firefox:110.0-geckodriver-0.36-20250303 Tagged selenium/node-firefox:110.0-20250303 Tagged selenium/standalone-firefox:110.0-20250303表面上看它只是一段贴日志但它是理解 docker-selenium 镜像**标签规范Tagging Convention**的钥匙脚本如何探测容器内浏览器与驱动版本、如何把长版本截断为短版本、如何排列出 20 个10 个node-firefox 10 个standalone-firefox兼容不同消费习惯的标签。下文结合仓库源码逐一还原。二、命令参数拆解一行命令的七个入参归档文档第一行给出了完整命令./tag_and_push_browser_images.sh 4.29.0 20250303 selenium false firefox true对照 tag_and_push_browser_images.sh 的头部参数定义7 个位置参数逐一映射如下位置脚本变量本次值含义1VERSION4.29.0Selenium Grid 服务器版本2BUILD_DATE20250303构建日期YYYYMMDD3NAMESPACEseleniumDocker Hub 命名空间4PUSH_IMAGEfalse是否docker push默认false5BROWSERfirefox目标浏览器分支6RELEASE_OLD_VERSIONtrue是否同时补发旧版本标签7PLATFORM省略平台默认linux/amd64脚本内部将前两个参数拼成TAG_VERSION4.29.0-20250303tag_and_push_browser_images.sh它对应仓库里预先构建好的基础镜像标签selenium/node-firefox:4.29.0-20250303——即所有后续标签都是对这份已构建镜像的别名alias。两点需要注意PUSH_IMAGEfalse表示本次运行只docker tag本地打标签、不推送。结合RELEASE_OLD_VERSIONtrue脚本注释Set by deploy.yml when the release promotes its tested images见 tag_and_push_browser_images.sh可以推断这属于发布流程中为已测试镜像补打历史版本标签的一类调用。第 7 个参数PLATFORM在文档命令中省略因此走默认值linux/amd64。在 Makefile 中这一脚本被编排进浏览器镜像发布总目标Makefiletag_and_push_browser_images: tag_and_push_chrome_images tag_and_push_chrome-for-testing_images tag_and_push_chromium_images tag_and_push_firefox_images tag_and_push_edge_images ./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) firefox $(RELEASE_OLD_VERSION)即firefox是五条浏览器发布流水线之一与 chrome、chrome-for-testing、chromium、edge 并列。三、版本探测脚本如何拿到 Firefox 与 GeckoDriver 的真实版本号标签不是凭空生成的脚本先启动容器、运行二进制并解析输出从已构建镜像中读取真实版本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})两条命令分别返回文档日志中的110.0.1与0.36.0。随后用short_version()函数截断为主版本.次版本tag_and_push_browser_images.shfunction short_version() { local __long_version$1 local __version_split(${__long_version//./ }) echo ${__version_split[0]}.${__version_split[1]} }110.0.1→110.0Short Firefox version - 110.00.36.0→0.36Short GeckoDriver version - 0.36于是得到四个关键版本值长版110.0.1/0.36.0短版110.0/0.36以及由VERSION-BUILD_DATE拼出的4.29.0-20250303。这些版本值能稳定读到前提是镜像内 Firefox 与 GeckoDriver 确实安装成功。安装链路在 NodeFirefox/Dockerfile 中分为两部分Firefox 本体通过ARG FIREFOX_VERSION与ARG FIREFOX_DOWNLOAD_URL控制安装来源。对于 110 这类老版本走.deb下载分支脚本构造https://.../firefox/releases/$FIREFOX_VERSION/linux-$ARCH/en-US/firefox-$FIREFOX_VERSION.deb若返回 404 则回退到.tar.bz2包NodeFirefox/Dockerfile下载后由 install-firefox-package.sh 依据 URL 后缀.deb/.tar.bz2/.tar.xz执行对应安装并将二进制软链到/usr/bin/firefox。GeckoDriverARG GECKODRIVER_VERSIONlatest时先解析 GitHub Releases 的 latest 重定向 URL 取得最新版本NodeFirefox/Dockerfile再按架构下载geckodriver-version-linux64.tar.gzamd64或-linux-aarch64.tar.gz解压后以ln -fs链接到/usr/bin/geckodriver。构建完成后Dockerfile 还会把浏览器信息写入/opt/selenium/browsers/firefox/供 Selenium Grid 4 配置发现浏览器能力NodeFirefox/DockerfileRUN mkdir -p /opt/selenium/browsers/firefox \ echo firefox /opt/selenium/browsers/firefox/name \ firefox --version | awk {print $3} /opt/selenium/browsers/firefox/version \ echo {moz:firefoxOptions: {binary: ${SE_BROWSER_BINARY_LOCATION:-/usr/bin/firefox}}} /opt/selenium/browsers/firefox/binary_location四、20 个标签的完整矩阵长短版本 × 六类组合文档日志的 20 行Tagged输出正是retag()对两个镜像node-firefox、standalone-firefox逐一应用 10 个标签的结果。标签列表在 tag_and_push_browser_images.sh 中定义按是否带 grid 版本、是否带构建日期、是否用短版本分成两组共 10 个第一组 6 个始终生成包含 Grid 版本与构建日期标签模板本次实际值node-firefox 示例${FIREFOX_VERSION}-geckodriver-${GECKODRIVER_VERSION}-grid-${TAG_VERSION}110.0.1-geckodriver-0.36.0-grid-4.29.0-20250303${FIREFOX_VERSION}-geckodriver-${GECKODRIVER_VERSION}-${BUILD_DATE}110.0.1-geckodriver-0.36.0-20250303${FIREFOX_VERSION}-${BUILD_DATE}110.0.1-20250303${FIREFOX_SHORT_VERSION}-geckodriver-${GECKODRIVER_SHORT_VERSION}-grid-${TAG_VERSION}110.0-geckodriver-0.36-grid-4.29.0-20250303${FIREFOX_SHORT_VERSION}-geckodriver-${GECKODRIVER_SHORT_VERSION}-${BUILD_DATE}110.0-geckodriver-0.36-20250303${FIREFOX_SHORT_VERSION}-${BUILD_DATE}110.0-20250303第二组 4 个仅当RELEASE_OLD_VERSIONfalse时追加不含 grid 与日期标签模板本次实际值node-firefox 示例${FIREFOX_VERSION}-geckodriver-${GECKODRIVER_VERSION}110.0.1-geckodriver-0.36.0${FIREFOX_VERSION}110.0.1${FIREFOX_SHORT_VERSION}-geckodriver-${GECKODRIVER_SHORT_VERSION}110.0-geckodriver-0.36${FIREFOX_SHORT_VERSION}110.0本次调用RELEASE_OLD_VERSIONtrue所以if [ ${RELEASE_OLD_VERSION} false ]tag_and_push_browser_images.sh不成立第二组 4 个标签被跳过——这正是文档中只出现 6 类标签的原因。归档文档里selenium/node-firefox:110.0.1这类纯净浏览器版本标签因此没有出现在本次输出中。每个标签都通过retag()应用tag_and_push_browser_images.shfor firefox_tag in ${FIREFOX_TAGS[]}; do retag node-firefox ${firefox_tag} retag standalone-firefox ${firefox_tag} doneretag()tag_and_push_browser_images.sh基于源镜像${NAMESPACE}/node-firefox:4.29.0-20250303执行docker tag若PUSH_IMAGEtrue则追加docker push其注释还说明发布流程可用PROMOTE_TAGStruePROMOTE_GHCR_NAMESPACE走docker buildx imagetools create实现多架构 manifest 在 registry 间直接复制别名避免本地docker tag造成单架构标签。五、标签规范在文档中的印证与使用建议官方 Node 镜像文档 docs/docker-hub/node-firefox.md 给出了与本归档记录完全一致的标签结构约定selenium/node-firefox-Major.Minor.Patch-YYYYMMDD selenium/node-firefox-browserVersion-browserDriver-browserDriverVersion-Major.Minor.Patch-YYYYMMDD并举例说明一次发布会同时产出长版/短版、含驱动/含日期等多重排列docs/docker-hub/node-firefox.md。对照本次归档日志恰好是 Firefox110.0长版110.0.1× GeckoDriver0.36长版0.36.0× Grid4.29.0× 构建日期20250303的一个具体实例。基于这份规范实际使用时有三种选型策略可复现测试推荐使用最完整的selenium/node-firefox:110.0.1-geckodriver-0.36.0-grid-4.29.0-20250303浏览器、驱动、Grid、构建日期全部锁定长期可复现。关注浏览器与驱动selenium/node-firefox:110.0-geckodriver-0.36-20250303或去掉日期兼顾可读性与兼容性。快速跟随最新补丁直接使用selenium/node-firefox:110.0短版本标签命中该主版本的最新补丁镜像。运行该镜像的典型方式与归档标签配套docker network create grid docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.29.0-20250303 docker run -d --net grid -e SE_EVENT_BUS_HOSTselenium-hub \ --shm-size2g \ selenium/node-firefox:110.0.1-geckodriver-0.36.0-grid-4.29.0-20250303其中--shm-size2g是运行含浏览器镜像的必要参数文档明确要求见 docs/docker-hub/node-firefox.md。六、从归档文件反推发布流水线这只是 4.29.0 的其中一份本文件位于CHANGELOG/archived/4.29.0/归档目录同目录下并列 Firefox 98/99/100…134 等一整套版本记录如 firefox_111.md还有 chrome_、edge_系列说明 4.29.0 是一次全浏览器矩阵发布每个浏览器版本都单独跑一次tag_and_push_browser_images.sh产出各自的标签实录。当前版本的对应记录则在 CHANGELOG/4.48.0/ 下持续累积归档目录与现行目录共同构成一次发布 一套可追溯标签的完整证据链。七、总结CHANGELOG/archived/4.29.0/firefox_110.md看似只是一段日志实则是 docker-selenium 镜像发布体系中最微观、也最完整的一次标签生成快照一条命令的 7 个参数VERSION、BUILD_DATE、NAMESPACE、PUSH_IMAGE、BROWSER、RELEASE_OLD_VERSION、PLATFORM驱动整个流程short_version()将110.0.1/0.36.0收敛为110.0/0.36从而把标签总量从 5 类翻倍到 10 类retag()对 node 与 standalone 两个镜像各打 6 个标签共 20 个全部指向同一份已构建镜像4.29.0-20250303RELEASE_OLD_VERSIONtrue决定了本次只生成含日期/含 grid 的 6 类标签而false时会追加 4 个纯净版本标签标签背后的版本值由 NodeFirefox/Dockerfile 的安装链路apt 仓库与下载安装包两条路径 GeckoDriver 版本解析保证真实可用。理解了这份归档实录也就理解了 docker-selenium 全系列浏览器镜像的标签生成机制——无论查看 CHANGELOG/ 下任何一份版本记录都能立刻读懂其背后发生了什么。赞分享测试后端云原生容器编排可观测性【免费下载链接】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.30.0 发布记录解读Firefox 107.0.1 GeckoDriver 0.36.0 镜像标签生成机制与实战用法docker selenium 4.30.0 发布记录解读Firefox 107.0.1 GeckoDriver 0.36.0 镜像标签生成机制与实战用法测试后端云原生容器编排可观测性docker-selenium 发布记录Selenium Grid 4.48.0 集成 Firefox 138.0.4 与 GeckoDriver 0.37.1 镜像标签全解析docker selenium 发布记录Selenium Grid 4.48.0 集成 Firefox 138.0.4 与 GeckoDriver 0.37.测试后端云原生容器编排可观测性docker-selenium 4.48.0 发布解析Firefox 134.0.2 GeckoDriver 0.37.1 镜像标签生成全流程docker selenium 4.48.0 发布解析Firefox 134.0.2 GeckoDriver 0.37.1 镜像标签生成全流程 本篇技术指测试后端云原生容器编排可观测性上一篇DiffusionGemma-26B-A4B-it vs Gemma 426B参数模型的8大核心能力对比下一篇Databasir数据库文档管理平台快速入门与实践创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑