资讯详情

资讯详情

docker-selenium 浏览器镜像标签体系与发布自动化:以 Chrome 110 与 Selenium Grid 4.33.0 发布日志为例

测试后端云原生容器编排可观测性【免费下载链接】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仓库中的浏览器镜像版本发布日志展开解读一次真实的 Chrome 镜像打标签与推送全流程从tag_and_push_browser_images.sh的参数解析、版本探测、标签命名规则到NodeChrome镜像中 Chrome / ChromeDriver 的安装链路以及如何在 Hub-Node 架构中直接拉取这些带浏览器版本的镜像运行测试。读完你既能读懂CHANGELOG矩阵中任意一条发布日志的含义也能独立复现或定制浏览器镜像的发布过程。一条发布日志的本质chrome_110.md是什么本文的主角是 CHANGELOG/archived/4.33.0/chrome_110.md。它的全文是一个命令执行日志./tag_and_push_browser_images.sh 4.33.0 20250606 selenium false chrome true Tagging images for browser chrome, version 4.33.0, build date 20250606, namespace selenium Selenium Grid version - 4.33.0-20250606 Chrome version - 110.0.5481.177 Short Chrome version - 110.0 ChromeDriver version - 110.0.5481.77 Short ChromeDriver version - 110.0 Tagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.33.0-20250606 Tagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.33.0-20250606 Tagged selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20250606 Tagged selenium/standalone-chrome:110.0.5481.177-chromedriver-110.0.5481.77-20250606 Tagged selenium/node-chrome:110.0.5481.177-20250606 Tagged selenium/standalone-chrome:110.0.5481.177-20250606 Tagged selenium/node-chrome:110.0-chromedriver-110.0-grid-4.33.0-20250606 Tagged selenium/standalone-chrome:110.0-chromedriver-110.0-grid-4.33.0-20250606 Tagged selenium/node-chrome:110.0-chromedriver-110.0-20250606 Tagged selenium/standalone-chrome:110.0-chromedriver-110.0-20250606 Tagged selenium/node-chrome:110.0-20250606 Tagged selenium/standalone-chrome:110.0-20250606这段日志不是手写的而是发布流水线执行 tag_and_push_browser_images.sh 后原样落盘的产物。它记录了一次真实的发布事实Selenium Grid 版本4.33.0构建日期 20250606合并后的发布标识为4.33.0-20250606Chrome 版本110.0.5481.177短版本110.0ChromeDriver 版本110.0.5481.77短版本110.0产物node-chrome与standalone-chrome两个镜像各获得 6 个标签共 12 个标签。在仓库的版本矩阵 CHANGELOG/README.md 中这个文件对应 4.33.0 那一行、Chrome 110 那一列的 ✓ 链接——点开即是这份打标签日志。命令入口tag_and_push_browser_images.sh的参数协议日志第一行就是完整调用方式。对照脚本源码tag_and_push_browser_images.sh7 个位置参数的语义如下位置参数本次取值含义$1VERSION4.33.0Selenium Grid 版本号$2BUILD_DATE20250606构建日期YYYYMMDD$3NAMESPACEselenium镜像命名空间$4PUSH_IMAGEfalse是否执行docker push默认false$5BROWSERchrome浏览器类型chrome/chromium/edge/firefox/chrome-for-testing$6RELEASE_OLD_VERSIONtrue是否为历史版本补发标签默认false$7PLATFORM未传目标平台默认linux/amd64脚本开头的核心逻辑tag_and_push_browser_images.sh会先拼出发布标识TAG_VERSION${VERSION}-${BUILD_DATE}本次即4.33.0-20250606对应日志中的Selenium Grid version - 4.33.0-20250606。为什么日志里只有 6 个标签而不是 10 个RELEASE_OLD_VERSIONtrue是理解这份日志的关键。脚本对每种浏览器维护两组标签tag_and_push_browser_images.sh基础 6 个标签永远生成全部带构建日期追加 4 个标签仅在RELEASE_OLD_VERSIONfalse即新版本发布时生成不带日期。本次命令第 6 个参数为true说明这是为历史浏览器版本Chrome 110补发标签因此只生成基础 6 个标签日志中每个镜像恰好 6 条Tagged输出。版本探测容器内运行google-chrome --version标签内容不是人工填写的而是脚本临时拉起已构建好的 node 镜像、在容器内执行二进制探测得到的。chrome 分支的探测逻辑tag_and_push_browser_images.shCHROME_VERSION$(docker run --platform ${PLATFORM} --rm ${NAMESPACE}/node-chrome:${TAG_VERSION} google-chrome --version | awk {print $3}) CHROMEDRIVER_VERSION$(docker run --platform ${PLATFORM} --rm ${NAMESPACE}/node-chrome:${TAG_VERSION} chromedriver --version | awk {print $2})即先构建selenium/node-chrome:4.33.0-20250606再通过docker run分别执行google-chrome --version与chromedriver --version用awk提取版本号字段google-chrome --version输出形如Google Chrome 110.0.5481.177取第 3 列得到110.0.5481.177chromedriver --version输出形如ChromeDriver 110.0.5481.77 (...),取第 2 列得到110.0.5481.77。short_version()函数tag_and_push_browser_images.sh按.切分并取前两段得到110.0。这就是日志中四行版本探测输出的来源。标签命名体系6 种组合规则全解chrome分支构造标签数组tag_and_push_browser_images.sh每个镜像 6 个标签规则如下#标签模板本次实际标签1chrome-chromedriver-driver-grid-version-date110.0.5481.177-chromedriver-110.0.5481.77-grid-4.33.0-202506062chrome-chromedriver-driver-date110.0.5481.177-chromedriver-110.0.5481.77-202506063chrome-date110.0.5481.177-202506064shortChrome-chromedriver-shortDriver-grid-version-date110.0-chromedriver-110.0-grid-4.33.0-202506065shortChrome-chromedriver-shortDriver-date110.0-chromedriver-110.0-202506066shortChrome-date110.0-20250606若为新版本发布RELEASE_OLD_VERSIONfalse还会追加 4 个不带日期的标签tag_and_push_browser_images.shchrome-chromedriver-driver、chrome、shortChrome-chromedriver-shortDriver、shortChrome。每个标签都会同时作用于node-chrome和standalone-chrometag_and_push_browser_images.sh因此新版本发布单次会产生 2 镜像 × 10 标签 20 个标签。这个体系的设计意图CHANGELOG/README.md是既持续提供最新 Selenium Grid 核心功能又保留用户按浏览器版本固定镜像的能力——用于跨浏览器测试或规避某个浏览器版本的已知问题。同时官方明确提示CHANGELOG/README.md并未对每种 Grid × 浏览器组合做全量测试用户需按自己的测试需求评估选用。底层落标签retag函数与镜像推送retag()tag_and_push_browser_images.sh是真正执行打标签的函数。默认路径用docker tag指向源镜像docker tag ${NAMESPACE}/${__image}:${TAG_VERSION} ${NAMESPACE}/${__image}:${__tag}当PUSH_IMAGEtrue时追加docker push。而PROMOTE_TAGStrue由 deploy.yml 在发布已测试镜像时设置则改用docker buildx imagetools create在 registry 之间直接复制 manifest保持多架构支持——这是docker tag无法完成的本地docker pull只会带回 runner 的单架构镜像。发布入口在 Makefile 中的封装仓库的 Makefile 将脚本封装为统一的tag_and_push_browser_images目标内部按浏览器拆分为独立目标tag_and_push_chrome_images: ./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) chrome $(RELEASE_OLD_VERSION)其余chrome-for-testing、chromium、edge、firefox分支结构完全一致只是传入不同的浏览器名。另有tag_and_push_browser_images_ghcrMakefile负责把本地全部标签通过buildx imagetools镜像到 GHCR 命名空间。镜像侧支撑Chrome 110 是如何装进镜像的要理解为什么探测会得到110.0.5481.177这个精确版本需要看 NodeChrome/Dockerfile。它通过两个构建参数控制浏览器安装ARG CHROME_VERSIONgoogle-chrome-stable ARG CHROME_DRIVER_VERSIONinstall-chrome.shNodeChrome/install-chrome.sh支持两种安装方式传google-chrome-stable110.0.5481.177-1这类精确版本时下载对应.deb并允许降级安装否则从 apt 仓库安装 stable/beta/unstable 通道。install-chromedriver.shNodeChrome/install-chromedriver.sh对 Chrome 115 的版本走 legacy 路径——从chromedriver.storage.googleapis.com/LATEST_RELEASE_110解析驱动版本这正是 Chrome 110 属于 CfT 出现前的产物、只能走老接口的直接原因。镜像构建完成后还会把浏览器版本写入/opt/selenium/browsers/chrome/NodeChrome/Dockerfile供 Node 启动时向 Grid 上报能力。拿到标签之后用版本固定的镜像跑测试发布日志中的标签可以直接用于拉取与运行例如固定到本次发布的完整版本docker pull selenium/node-chrome:110.0.5481.177-chromedriver-110.0.5481.77-grid-4.33.0-20250606更常见的做法是配合 Selenium Grid Hub 使用docs/docker-hub/node-chrome.mddocker 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-chrome:110.0-20250606两个注意点docs/docker-hub/node-chrome.md含浏览器的镜像运行务必加--shm-size2g日常使用建议用完整标签锁定浏览器与 Grid 版本latest只适合快速验证。docs/docker-hub/node-chrome.md还给出了标签结构总览docs/docker-hub/node-chrome.md从Major到BrowserMajor.BrowserMinor-chromedriver-DriverMajor.DriverMinor-grid-Major.Minor.Patch-YYYYMMDD共 10 级粒度从粗到细用户按需取用。从单条日志到版本矩阵归档与检索机制CHANGELOG目录按 Grid 版本分目录、按浏览器与主版本号分文件组织最新版放在CHANGELOG/4.48.0/下历史版本移入CHANGELOG/archived/例如本文的4.33.0/chrome_110.md。矩阵 CHANGELOG/README.md 的阅读规则是每个 ✓ 链接到对应 Grid 发布中该浏览器版本的详细变更日志最新版本在前、降序排列对比各行可以发现同一 Chrome 110 在 4.28.1 到 4.48.0 多个 Grid 版本下均被重新打标签浏览器与驱动版本始终为110.0.5481.177/110.0.5481.77变化的只是 Grid 版本与构建日期。这意味着当你需要旧的 Grid 核心 固定的旧浏览器版本组合时不必回退整个镜像体系——直接在矩阵中定位 Grid 版本列再点开对应浏览器的发布日志就能找到可精确复现的完整标签。小结一条看似平淡的chrome_110.md发布日志实际承载了docker-selenium浏览器镜像发布链路的所有关键信息脚本的 7 参数协议、容器内版本探测、64 标签命名规则、retag的双路径实现docker tag与imagetools、Makefile 的批量封装以及NodeChrome镜像构建侧对 Chrome/ChromeDriver 版本的精确控制。理解这条链路后你既可以读懂矩阵中任意版本组合的语义也能在自建镜像发布流程时复用这套探测版本—构造标签—批量打标推送的成熟模式。赞分享测试后端云原生容器编排可观测性【免费下载链接】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.33.0 Chrome 97 发布日志为例docker selenium 浏览器镜像标签体系解析以 Selenium Grid 4.33.0 Chrome 97 发布日志为例 本文以 docker测试后端云原生容器编排可观测性Selenium Grid 浏览器镜像标签体系全解以 docker-selenium 4.33.0 Chrome 108 发布记录为例Selenium Grid 浏览器镜像标签体系全解以 docker selenium 4.33.0 Chrome 108 发布记录为例 这篇指南以仓库归档测试后端云原生容器编排可观测性Selenium Docker 镜像浏览器版本标签体系以 Selenium Grid 4.33.0 与 Chrome 134 为例Selenium Docker 镜像浏览器版本标签体系以 Selenium Grid 4.33.0 与 Chrome 134 为例 CHANGELOG/arc测试后端云原生容器编排可观测性上一篇FastStream MQTT 共享订阅Shared Subscription实战指南$share 组、负载均衡与源码实现下一篇终极指南深入解析Koikatu HF Patch的200插件生态系统与专业配置创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →