首页 / 资讯中心 / 文章详情

docker-selenium 4.48.0 发布解读:Chrome for Testing 132 镜像的标签体系与版本对齐机制

docker-selenium 4.48.0 发布解读:Chrome for Testing 132 镜像的标签体系与版本对齐机制 ★ FEATURED ARTICLE
测试后端云原生容器编排可观测性【免费下载链接】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点击查看免费下载Chrome for TestingCfT是 Chrome 团队专为自动化测试发布的浏览器构建其每次发布都会附带同一版本号的 ChromeDriver保证浏览器与驱动始终是已知良好的配对。本文以 docker-selenium 项目 4.48.0 版本发布chrome-for-testing_132镜像的实际日志为骨架逐条解析发布命令的参数含义、10 个镜像标签的命名结构以及标签背后的脚本实现与版本探测机制帮助读者理解如何按需选取精确版本标签、复现发布流程并掌握该镜像的架构限制与运行方式。发布日志全景一条命令生成 20 个镜像标签CHANGELOG/4.48.0/chrome-for-testing_132.md记录了一次完整的浏览器镜像打标签过程。整条命令与全部输出如下./tag_and_push_browser_images.sh 4.48.0 20260909 selenium false chrome-for-testing true Tagging images for browser chrome-for-testing, version 4.48.0, build date 20260909, namespace selenium Selenium Grid version - 4.48.0-20260909 Chrome for Testing version - 132.0.6834.159 Short Chrome for Testing version - 132.0 ChromeDriver version - 132.0.6834.159 Short ChromeDriver version - 132.0 Tagged selenium/node-chrome-for-testing:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.48.0-20260909 Tagged selenium/standalone-chrome-for-testing:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.48.0-20260909 Tagged selenium/node-chrome-for-testing:132.0.6834.159-chromedriver-132.0.6834.159-20260909 Tagged selenium/standalone-chrome-for-testing:132.0.6834.159-chromedriver-132.0.6834.159-20260909 Tagged selenium/node-chrome-for-testing:132.0.6834.159-20260909 Tagged selenium/standalone-chrome-for-testing:132.0.6834.159-20260909 Tagged selenium/node-chrome-for-testing:132.0-chromedriver-132.0-grid-4.48.0-20260909 Tagged selenium/standalone-chrome-for-testing:132.0-chromedriver-132.0-grid-4.48.0-20260909 Tagged selenium/node-chrome-for-testing:132.0-chromedriver-132.0-20260909 Tagged selenium/standalone-chrome-for-testing:132.0-chromedriver-132.0-20260909 Tagged selenium/node-chrome-for-testing:132.0-20260909 Tagged selenium/standalone-chrome-for-testing:132.0-20260909这次发布对应的版本矩阵是组件完整版本短版本Selenium Grid Server4.48.0-20260909—Chrome for Testing132.0.6834.159132.0ChromeDriver132.0.6834.159132.0可以看到 CfT 与 ChromeDriver 在本镜像中版本号完全一致132.0.6834.159这正是 CfT 发布模型的核心特性每个 CfT 构建与同一 revision 构建的 ChromeDriver 捆绑发布无需担心浏览器与驱动版本错配。发布命令逐参数解析tag_and_push_browser_images.sh仓库根目录是此次日志的直接来源。脚本开头定义了 7 个位置参数L1-L9序号参数本次调用值含义$1VERSION4.48.0Selenium Grid 版本号$2BUILD_DATE20260909构建日期与 VERSION 拼接为4.48.0-20260909$3NAMESPACEselenium镜像仓库命名空间$4PUSH_IMAGEfalse是否执行docker push默认false$5BROWSERchrome-for-testing浏览器类型决定走哪个 case 分支$6RELEASE_OLD_VERSIONtrue是否为旧版本补发标签$7PLATFORM未传默认linux/amd64探测版本时运行的平台第 3 行日志Tagging images for browser chrome-for-testing, version 4.48.0, build date 20260909, namespace selenium直接对应脚本 L59 的echo语句。RELEASE_OLD_VERSION 参数对标签数量的影响日志中只生成了10 个标签node 与 standalone 各 5 个而非脚本逻辑能生成的最多 20 个。原因在于 chrome-for-testing 分支 L263-L274if [ ${RELEASE_OLD_VERSION} false ]; then CHROME_TAGS( # Browser version and browser driver version ${CHROME_VERSION}-chromedriver-${CHROMEDRIVER_VERSION} # Browser version ${CHROME_VERSION} # Browser version and browser driver version ${CHROME_SHORT_VERSION}-chromedriver-${CHROMEDRIVER_SHORT_VERSION} # Browser version ${CHROME_SHORT_VERSION} ) fi当RELEASE_OLD_VERSIONtrue本次调用正是如此时跳过不带构建日期的裸版本标签如132.0.6834.159、132.0。这是为了避免旧版本回填标签时覆盖掉较新发布已有的同名标签——新发布通常会携带这些裸版本标签若旧版本再补一次就会产生标签漂移。镜像标签命名结构全解本次生成的 5 组标签每组同时打给node-chrome-for-testing与standalone-chrome-for-testing可以归纳为四种组合维度版本粒度完整版本132.0.6834.159vs 短版本132.0由short_version函数截取前两段组件信息仅浏览器版本、浏览器驱动版本、浏览器驱动Selenium Grid 版本日期是否携带构建日期20260909。具体映射如下标签模式本次生成示例node 与 standalone 各一browser-chromedriver-driver-grid-grid-date132.0.6834.159-chromedriver-132.0.6834.159-grid-4.48.0-20260909browser-chromedriver-driver-date132.0.6834.159-chromedriver-132.0.6834.159-20260909browser-date132.0.6834.159-20260909shortBrowser-chromedriver-shortDriver-grid-grid-date132.0-chromedriver-132.0-grid-4.48.0-20260909shortBrowser-chromedriver-shortDriver-date132.0-chromedriver-132.0-20260909shortBrowser-date132.0-20260909在RELEASE_OLD_VERSIONfalse的常规发布中还会追加 4 个裸版本标签132.0.6834.159-chromedriver-132.0.6834.159、132.0.6834.159、132.0-chromedriver-132.0、132.0。这与 node-chrome-for-testing 文档 和 standalone-chrome-for-testing 文档 中以浏览器版本 驱动版本 Grid 版本 构建日期的各种排列组合作为标签的描述完全一致。标签生成依赖链标签中的版本号并非硬编码而是在脚本运行时通过docker run临时启动刚构建好的镜像探测而来chrome-for-testing 分支 L240-L248CHROME_VERSION$(docker run --platform ${PLATFORM} --rm ${NAMESPACE}/node-chrome-for-testing:${TAG_VERSION} google-chrome --version | awk {print $5}) CHROMEDRIVER_VERSION$(docker run --platform ${PLATFORM} --rm ${NAMESPACE}/node-chrome-for-testing:${TAG_VERSION} chromedriver --version | awk {print $2})注意 CfT 分支与普通chrome分支的解析字段不同google-chrome --version对 CfT 输出取$5对普通 Chrome 取$3这是因为两类二进制的版本输出格式存在差异CfT 输出的Chrome for Testing前缀占据了更靠前的字段。短版本则由 short_version 函数 按.切分后取前两段得到132.0。retag 与推送retag 函数 承担实际的打标签动作PROMOTE_TAGSfalse时使用docker tag本次日志即此路径第 4 参数false决定了不执行docker push若发布流程走镜像推广PROMOTE_TAGStrue则改用docker buildx imagetools create在 registry 之间直接复制 manifest避免跨架构标签退化为单架构。Makefile 集成与 GHCR 镜像该脚本由 Makefile 的 target 驱动tag_and_push_chrome-for-testing_imagesL786-L787按固定参数调用脚本与tag_and_push_chrome_images、tag_and_push_chromium_images等并列汇总于tag_and_push_browser_imagesL781这一个入口 target。而 tag_and_push_browser_images_ghcr 则遍历本地产出的所有标签通过docker buildx imagetools create将docker.io/selenium/*的标签镜像同步到 GHCR 命名空间保证两个镜像仓库标签体系一致。镜像内部的 CfT 安装与版本固定标签中浏览器版本的固定特性根源在于 NodeChrome/Dockerfile 的构建逻辑L20-L33ARG CFT_VERSIONSTABLE ARG INSTALL_CFTfalse ... RUN chmod x /opt/bin/install-chrome.sh /opt/bin/update-chrome-components.sh /opt/bin/install-chrome-for-testing.sh \ if [ ${INSTALL_CFT} true ]; then \ CFT_VERSION${CFT_VERSION} /opt/bin/install-chrome-for-testing.sh; \ else \ /opt/bin/install-chrome.sh; \ fiINSTALL_CFTtrue时走 CfT 安装路径CFT_VERSION可传STABLE/BETA/DEV/CANARY通道名或精确版本号如132.0.6834.159install-chrome-for-testing.sh 从 Google 的 CfT 公共存储下载对应版本的 zip 包安装到/opt/chrome并解析随附的deb.deps安装运行时依赖最后输出google-chrome --version校验ChromeDriver 由 install-chromedriver.sh 安装amd64 上优先从 CfT 渠道获取与 Chrome 主版本号锁步的驱动版本解析逻辑在 resolve-chromedriver-source.sh。与普通node-chrome镜像不同CfT 镜像不自动更新常规镜像的更新入口 update-chrome-components.sh 对 CfT 构建不适用且不携带消费版浏览器附带的组件因此非常适合需要把构建精确钉死在某个版本的场景——标签里写了132.0.6834.159容器内运行的就是132.0.6834.159。如何选择并使用正确的标签标签选择速查需要最完整的可追溯信息132.0.6834.159-chromedriver-132.0.6834.159-grid-4.48.0-20260909浏览器驱动Grid日期全齐需要精确版本但不过分冗余132.0.6834.159-chromedriver-132.0.6834.159-20260909只需要知道主版本线132.0-20260909常规新发布后希望跟随该主版本的最新补丁132.0-chromedriver-132.0或132.0注意此类裸版本标签仅在RELEASE_OLD_VERSIONfalse时生成本次日志未包含。官方文档推荐始终固定完整标签浏览器版本 Grid 版本 构建日期这是可复现性最强的做法。以 Node 模式接入 Selenium GridCfT 镜像以browserNamechrome注册能力已有测试无需改动。节点模式运行方式完整步骤见 node-chrome-for-testing 文档docker network create grid docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.48.0-20260905 docker run -d --net grid -e SE_EVENT_BUS_HOSTselenium-hub \ --platform linux/amd64 \ --shm-size2g \ selenium/node-chrome-for-testing:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.48.0-20260909以 Standalone 模式直接运行docker run -d -p 4444:4444 -p 7900:7900 --platform linux/amd64 --shm-size2g \ selenium/standalone-chrome-for-testing:132.0.6834.159-chromedriver-132.0.6834.159-grid-4.48.0-20260909随后将 WebDriver 测试指向http://localhost:4444即可浏览器内联调试可访问http://localhost:7900/?autoconnect1resizescalepasswordsecret默认密码secret。架构限制仅 linux/amd64Chrome for Testing 官方仅发布linux64平台构建因此selenium/node-chrome-for-testing与selenium/standalone-chrome-for-testing镜像只提供 linux/amd64。运行命令中的--platform linux/amd64正是为了在非 amd64 主机上强制使用该架构。ARM64 环境请改用selenium/node-chrome或selenium/node-chromiumCfT 从 Chrome 153 起才开始发布linux-arm64更早的版本在 arm64 上只能走 Debian 的chromium-driver包回退路径见 resolve-chromedriver-source.sh 头部注释。此外凡包含浏览器的镜像都建议加--shm-size2g否则 Chrome 在默认 64 MB 的/dev/shm下容易崩溃。小结CHANGELOG/4.48.0/chrome-for-testing_132.md表面是一份发布日志实质是理解 docker-selenium 镜像标签体系的最佳入口一条命令、两个镜像名、五组标签维度配合 tag_and_push_browser_images.sh 的版本探测与 Makefile 的发布编排构成了完整、可追溯、可复现的浏览器镜像发布链路。对使用者而言掌握浏览器版本-chromedriver-驱动版本-grid-Grid版本-构建日期的标签组合规则即可在任何历史发布中精确定位某天、某版 Grid、某版 CfT、某版驱动的唯一镜像。赞分享测试后端云原生容器编排可观测性【免费下载链接】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.48.0 Chrome for Testing 125 镜像发布与标签体系详解docker selenium 4.48.0 Chrome for Testing 125 镜像发布与标签体系详解 本指南以 docker selenium 仓测试后端云原生容器编排可观测性LaMa 图像修复模型部署本地 Docker 双路线完整实操指南LaMa 图像修复模型部署本地 Docker 双路线完整实操指南 接过一张需要去掉水印的图你在终端敲下 LaMa 的推理命令结果不是 best.c测试后端云原生容器编排可观测性docker-selenium 4.48.0 发布记录解读Chrome for Testing 128.0.6613.137 镜像标签体系与构建链路docker selenium 4.48.0 发布记录解读Chrome for Testing 128.0.6613.137 镜像标签体系与构建链路 本篇技术测试后端云原生容器编排可观测性上一篇Kubernetes Batch Working Group 全景指南从 Job 与 CronJob 增强到 Kueue、JobSet 的批处理生态建设下一篇Kubernetes 项目基础设施迁移实录SIG K8s Infra 2020 年度报告解读与 CNCF 迁移路线图创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站