ARTICLE DETAIL

资讯详情

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

docker-selenium 4.31.0 发布实录:Firefox 101.0.1 镜像标签生成与发布脚本深度解析

docker-selenium 4.31.0 发布实录:Firefox 101.0.1 镜像标签生成与发布脚本深度解析 测试后端云原生容器编排可观测性【免费下载链接】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.31.0 发布记录 firefox_101.md 为核心逐行还原一次真实的浏览器镜像发布过程从执行 tag_and_push_browser_images.sh 开始到为 Firefox 101.0.1 GeckoDriver 0.36.0 Selenium Grid 4.31.0 组合生成 12 个node-firefox/standalone-firefox镜像标签。读完本文你将掌握该仓库浏览器镜像标签的完整命名矩阵、发布脚本的参数语义与执行逻辑以及这些标签背后的镜像构建与使用方式。一、文档定位一次浏览器镜像发布的原始记录firefox_101.md 是 docker-selenium 4.31.0 版本发布流程的存档产物之一。整个CHANGELOG/archived/4.31.0/目录下按浏览器chrome / firefox / edge与版本号归档了大量同构记录如firefox_100.md、firefox_102.md每份文件都是tag_and_push_browser_images.sh在某次具体版本组合上的真实执行输出。这份文档以脚本输出块的形式记录了三个层面的信息调用方式./tag_and_push_browser_images.sh 4.31.0 20250414 selenium false firefox true探测到的版本矩阵Selenium Grid 4.31.0-20250414、Firefox 101.0.1短版本 101.0、GeckoDriver 0.36.0短版本 0.36生成的完整标签列表node-firefox与standalone-firefox两个镜像各 6 个标签共 12 行Tagged输出。二、脚本调用与参数语义文档第一行给出了完整的调用命令其 7 个位置参数与 tag_and_push_browser_images.sh 的解析逻辑一一对应参数值对应脚本变量含义$14.31.0VERSIONSelenium Grid 版本号$220250414BUILD_DATE构建日期YYYYMMDD与版本号拼成完整 tag4.31.0-20250414$3seleniumNAMESPACEDocker Hub 命名空间脚本第 16 行还允许通过环境变量NAME覆盖$4falsePUSH_IMAGE是否在打标签后执行docker push$5firefoxBROWSER浏览器类型决定走case中的哪个分支$6trueRELEASE_OLD_VERSION是否补发旧版本true时不生成裸版本标签$7未传PLATFORM平台默认linux/amd64在 Makefile 中tag_and_push_browser_images是各浏览器子目标的聚合入口Firefox 对应的子目标最终执行的就是文档中的这一行命令tag_and_push_firefox_images: ./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) firefox $(RELEASE_OLD_VERSION)PUSH_IMAGEfalse意味着本次执行只在本机为已构建好的镜像补充标签、不做推送RELEASE_OLD_VERSIONtrue则明确这是一次旧版本归档/补发——正是文档被归入CHANGELOG/archived/目录的原因。三、版本探测脚本如何知道镜像里装了什么脚本并不会从配置文件读取版本号而是直接运行构建产物来探测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})见 tag_and_push_browser_images.sh。它启动node-firefox:4.31.0-20250414容器分别执行firefox --version与geckodriver --version再用awk抽取版本号字段得到文档中打印的Firefox version - 101.0.1 Short Firefox version - 101.0 GeckoDriver version - 0.36.0 Short GeckoDriver version - 0.36其中短版本由 short_version() 函数实现——按.切分取前两段101.0、0.36用于生成精简标签。generate_release_notes.sh也采用相同的探测手法docker run ... firefox --version、geckodriver --version | awk NR1{print $2}来生成发布说明中的版本表格见 generate_release_notes.sh。四、标签矩阵12 个标签从何而来文档输出中node-firefox与standalone-firefox各获得 6 个标签。对照 tag_and_push_browser_images.sh 的FIREFOX_TAGS数组6 个标签分为三组维度完整版本组含 Grid 版本与构建日期101.0.1-geckodriver-0.36.0-grid-4.31.0-20250414101.0.1-geckodriver-0.36.0-20250414101.0.1-20250414短版本组同样的三种组合只保留两位101.0-geckodriver-0.36-grid-4.31.0-20250414101.0-geckodriver-0.36-20250414101.0-20250414也就是说标签由浏览器版本、浏览器驱动版本、Grid 版本、构建日期四个要素的不同组合构成。同一组内三者是递进精简的关系完整版本 Grid 版本→完整版本 日期→仅日期。为什么没有裸版本标签注意RELEASE_OLD_VERSIONtrue的效果。在 tag_and_push_browser_images.sh 中只有当RELEASE_OLD_VERSIONfalse时FIREFOX_TAGS才会追加101.0.1-geckodriver-0.36.0、101.0.1、101.0-geckodriver-0.36、101.0这 4 个不含日期/Grid 信息的标签脚本注释为Browser version and browser driver version。本次为旧版本补发刻意省略了这类容易被后续版本覆盖的裸标签避免selenium/node-firefox:101.0之类的标签在未来被错误指向。因此最终输出恰好是 6 个标签 × 2 个镜像 12 行Tagged与文档完全一致。五、打标签的两种底层路径每个标签最终通过 retag() 落库该函数根据PROMOTE_TAGS环境变量由deploy.yml在正式发布时设置选择两条路径常规路径PROMOTE_TAGSfalse执行docker tag将本地已有的selenium/node-firefox:4.31.0-20250414镜像打上新标签若PUSH_IMAGEtrue再docker push。本次文档输出PUSH_IMAGEfalse因此只在本机完成Tagged操作。镜像晋升路径PROMOTE_TAGStrue不再依赖本地镜像而是用docker buildx imagetools create在 registry 之间直接为已发布的多架构 manifest 追加标签脚本注释解释了原因docker pull只能拉回 runner 本机架构会导致浏览器标签变成单架构并支持通过PROMOTE_GHCR_NAMESPACE同步镜像到 GitHub Container Registry。此外Makefile 的tag_and_push_browser_images_ghcr目标负责把 Docker Hub 上已打好的全部标签用docker buildx imagetools create逐条镜像到 GHCR 命名空间。六、标签背后的镜像Firefox 101.0.1 是怎么装进镜像的标签中的版本信息最终由 NodeFirefox/Dockerfile 的构建参数决定FirefoxARG FIREFOX_VERSIONlatest支持latest、beta-latest、nightly-latest、devedition-latest、esr-latest以及具体版本号对于 101.0.1 这类具体版本Dockerfile 会先尝试从 Mozilla 官方.deb下载若返回 404 则回退到.tar.bz2包见 NodeFirefox/Dockerfile最终由 install-firefox-package.sh 完成解压、安装并软链/usr/bin/firefox。GeckoDriverARG GECKODRIVER_VERSIONlatest通过 GitHub latest release 重定向解析出最新版本号按架构下载linux64或linux-aarch64压缩包解压后软链到/usr/bin/geckodriver见 NodeFirefox/Dockerfile。语言包构建期会调用 get_lang_package.sh从 Mozilla FTP 拉取该版本的全部.xpi语言包并重命名为langpack-*firefox.mozilla.org.xpi放入distribution/extensions目录。浏览器信息供 Grid 注册构建末尾把firefox、101.0.1与{moz:firefoxOptions: {binary: ...}}写入/opt/selenium/browsers/firefox/见 NodeFirefox/DockerfileGrid 节点启动时据此声明自身能力。运行期清理firefox-cleanup.sh由 supervisord 周期性执行按SE_BROWSER_LEFTOVERS_PROCESSES_SECS清理残留的firefox-bin僵尸进程防止长时间运行后资源耗尽见 firefox-cleanup.sh。七、实战用这些标签运行 Firefox 节点文档生成的标签均可直接用于docker pull/docker run。以node-firefox为例将其接入 Grid 的标准方式完整说明见 docs/docker-hub/node-firefox.mddocker network create grid docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.31.0-20250414 docker run -d --net grid \ --shm-size2g \ -e SE_EVENT_BUS_HOSTselenium-hub \ selenium/node-firefox:101.0.1-geckodriver-0.36.0-grid-4.31.0-20250414几点使用提示务必加--shm-size2g浏览器容器默认/dev/shm过小会导致 Firefox 崩溃这是官方明确要求的运行参数。首选完整标签101.0.1-geckodriver-0.36.0-grid-4.31.0-20250414同时固定了浏览器、驱动、Grid 与构建日期四个要素可复现性最强文档中的短标签如101.0-20250414适合快速取用最新补丁。驱动版本匹配GeckoDriver 0.36.0 与 Firefox 101.0.1 在本次发布中作为一组经过验证的组合打包标签即兼容性清单。八、结语一份发布日志的工程价值firefox_101.md 表面上只是一段脚本输出实则是 docker-selenium 发布体系的一份可追溯审计记录它同时锚定了版本组合、标签命名约定与发布流程参数。阅读这类归档可以快速定位某浏览器 某驱动 某 Grid 版本的精确镜像标签而对照 tag_and_push_browser_images.sh 的源码则能理解每个标签的生成规则与RELEASE_OLD_VERSION、PROMOTE_TAGS等发布开关对最终产物清单的影响。对于需要固定浏览器版本做自动化测试、或自行维护镜像发布流水线的团队这份记录与配套脚本本身就是一份可复用的操作范本。赞分享测试后端云原生容器编排可观测性【免费下载链接】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.31.0 的 Firefox 112 镜像发布记录与标签体系深度解析docker selenium 4.31.0 的 Firefox 112 镜像发布记录与标签体系深度解析 本篇技术指南围绕 docker selenium 项目测试后端云原生容器编排可观测性Selenium Grid Docker 镜像发布实录Firefox 101.0.1 版本标签体系与 tag_and_push_browser_images.sh 全解析Selenium Grid Docker 镜像发布实录Firefox 101.0.1 版本标签体系与 tag_and_push_browser_images.测试后端云原生容器编排可观测性docker-selenium 4.31.0 发布记录Firefox 103.0.2 GeckoDriver 0.36.0 镜像标签全解析docker selenium 4.31.0 发布记录Firefox 103.0.2 GeckoDriver 0.36.0 镜像标签全解析 本文以 doc测试后端云原生容器编排可观测性上一篇突破容器限制在Docker中运行Windows系统并启用WinRM服务的终极指南下一篇告别传统CMD在Dockur Windows容器中执行命令的3种创新方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表