ARTICLE DETAIL

资讯详情

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

docker-selenium 4.30.0 Edge 117 浏览器镜像:版本固定与标签发布全流程解析

docker-selenium 4.30.0 Edge 117 浏览器镜像:版本固定与标签发布全流程解析 测试后端云原生容器编排可观测性【免费下载链接】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.30.0/edge_117.md 记录的一次 Edge 镜像打标签作业为线索结合仓库内的发布脚本、Dockerfile 与官方文档完整拆解 docker-selenium 如何在每次 Grid 发布时为 Edge 浏览器生成一整套语义化镜像标签。读完本文你将能读懂任意一次浏览器镜像发布日志、理解 12 个标签的命名规则与取舍逻辑并能直接使用固定版本标签部署 Edge 测试节点。这份 Changelog 记录了什么一次 Edge 镜像打标签作业的完整输出该文档并非普通的功能变更说明而是一份真实的发布执行日志——它记录了 2025 年 3 月 23 日构建日期20250323为 Selenium Grid4.30.0发布 Edge 浏览器镜像时打标签脚本产生的全部输出./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false edge true Tagging images for browser edge, version 4.30.0, build date 20250323, namespace selenium Selenium Grid version - 4.30.0-20250323 Edge version - 117.0.2045.55 Short Edge version - 117.0 EdgeDriver version - 117.0.2045.55 Short EdgeDriver version - 117.0日志揭示了这次发布的四个关键版本信息组件完整版本号短版本号Major.MinorSelenium Grid Server4.30.0-202503234.30Microsoft Edge117.0.2045.55117.0Microsoft Edge WebDriver (msedgedriver)117.0.2045.55117.0其中 Short 版本由脚本的short_version()函数从完整版本号中截取前两段得到用于生成易记忆的短标签。值得注意Edge 117 与 EdgeDriver 117 恰好完全同版这源于微软官方对 Chromium 系浏览器浏览器与 Driver 逐版本对齐的发布策略。标签命名约定读懂 6 6 个镜像标签日志中共出现 12 个Tagged行分别作用于selenium/node-edge网格节点镜像与selenium/standalone-edge独立模式镜像每个镜像各 6 个标签序号标签以 node-edge 为例standalone-edge 完全相同语义1117.0.2045.55-edgedriver-117.0.2045.55-grid-4.30.0-20250323完整浏览器 完整 Driver 完整 Grid 版本 构建日期2117.0.2045.55-edgedriver-117.0.2045.55-20250323完整浏览器 完整 Driver 构建日期3117.0.2045.55-20250323完整浏览器版本 构建日期4117.0-edgedriver-117.0-grid-4.30.0-20250323短浏览器 短 Driver 完整 Grid 版本 构建日期5117.0-edgedriver-117.0-20250323短浏览器 短 Driver 构建日期6117.0-20250323短浏览器版本 构建日期这套约定与仓库文档 docs/docker-hub/node-edge.md 描述的标签结构完全一致形如selenium/node-edge-BrowserVersion-browserDriver-DriverVersion-Major.Minor.Patch-YYYYMMDD以及其全部排列组合。其设计意图是用户既可以用浏览器版本 构建日期锁定某个确切构建也可以用117.0-20250323这样的短标签快速引用同一天发布的最新补丁。为什么这次只打了 6 个标签而不是 10 个阅读脚本 tag_and_push_browser_images.sh 的 edge 分支可以发现标签数组EDGE_TAGS实际定义了两组基础 6 个标签永远生成即上表列出的 6 个全部带构建日期能精确锁定某一天发布的确切内容4 个旧版标签仅当RELEASE_OLD_VERSIONfalse时追加即不带构建日期的117.0.2045.55-edgedriver-117.0.2045.55、117.0.2045.55、117.0-edgedriver-117.0、117.0。本次日志中命令的第六个参数为true对应RELEASE_OLD_VERSION因此脚本跳过了这 4 个标签只产生 6 × 2 12 个Tagged行。这正是发布历史版本的刻意取舍避免不带日期、可漂移的短标签覆盖到旧版本镜像上确保117.0这类标签始终只指向最新的发布。脚本内部tag_and_push_browser_images.sh 如何生成这些标签日志中的每一条输出都能在 tag_and_push_browser_images.sh 中找到对应实现。该脚本按浏览器分支chrome / chromium / edge / firefox / chrome-for-testing工作edge 分支的核心流程如下参数约定位置参数默认值本次取值作用$1VERSION—4.30.0Grid 版本$2BUILD_DATE—20250323构建日期YYYYMMDD$3NAMESPACE—selenium镜像命名空间$4PUSH_IMAGEfalsefalse是否同时执行 docker push$5BROWSER—edge浏览器类型$6RELEASE_OLD_VERSIONfalsetrue是否为历史版本打漂移标签$7PLATFORMlinux/amd64—目标平台chrome 分支使用版本探测在容器内执行浏览器二进制脚本并不读取文件而是直接以TAG_VERSION即4.30.0-20250323运行已构建好的 node-edge 容器从标准输出解析版本号EDGE_VERSION$(docker run --rm ${NAMESPACE}/node-edge:${TAG_VERSION} microsoft-edge --version | awk {print $3}) EDGEDRIVER_VERSION$(docker run --rm ${NAMESPACE}/node-edge:${TAG_VERSION} msedgedriver --version | awk {print $4})这正是日志中Edge version - 117.0.2045.55与EdgeDriver version - 117.0.2045.55两行的来源先构建镜像再从镜像内部实际产出版本号从而保证标签与镜像内容严格一致杜绝手写版本号导致的错标。打标签与推送retag 函数function retag() { docker tag ${NAMESPACE}/${__image}:${TAG_VERSION} ${NAMESPACE}/${__image}:${__tag} echo Tagged ${NAMESPACE}/${__image}:${__tag} if [ ${PUSH_IMAGE} true ]; then docker push ${NAMESPACE}/${__image}:${__tag} fi }edge 分支末尾对所有EDGE_TAGS逐一执行retag node-edge与retag standalone-edge形成日志中 node 与 standalone 交替出现的 12 行输出。若PUSH_IMAGE为 true 则随后推送同时当PROMOTE_TAGStrue发布流水线采用测试镜像晋升发布模式时会改用docker buildx imagetools create在 registry 之间直接复制 manifest以保持多架构索引完整。Makefile 中的调用链该脚本由 Makefile 的tag_and_push_edge_images目标触发./tag_and_push_browser_images.sh $(VERSION) $(BUILD_DATE) $(NAMESPACE) $(PUSH_IMAGE) edge $(RELEASE_OLD_VERSION)而VERSION、BUILD_DATE等变量默认值如VERSION : 4.49.0、BUILD_DATE : $(shell date %Y%m%d)同样定义在 Makefile 顶部。此外tag_and_push_browser_images_ghcr目标还会遍历本地全部 edge 标签用docker buildx imagetools create将同一 manifest 镜像到 GHCR实现 Docker Hub 与 GHCR 的双注册表发布。Edge 镜像如何构建从 Dockerfile 看 117.0.2045.55 的由来日志中的版本号不是凭空出现的NodeEdge/Dockerfile 展示了版本固定的底层实现浏览器安装默认安装microsoft-edge-stable也可通过EDGE_VERSION指定如microsoft-edge-beta。由于微软会从官方仓库清理旧版本脚本对指定版本形如microsoft-edge-stable117.0.2045.55-1从EDGE_ARCHIVE_SITENDViet/microsoft-edge-stable的 GitHub Releases 归档下载对应.deb安装最新版才走 apt 仓库Driver 安装EDGE_DRIVER_VERSION为空时先查询微软的LATEST_RELEASE_major_LINUX指针https://msedgedriver.microsoft.com/LATEST_RELEASE_117_LINUX失败则回退到与浏览器完全一致的版本号再下载edgedriver_linux64.zip并软链到/usr/bin/msedgedriver平台限制FROM --platformlinux/amd64明确声明 Edge 镜像仅支持linux/amd64Makefile 的edge_only目标也会先校验PLATFORMS是否包含linux/amd64否则直接跳过构建。因此日志中的 12 个标签均为 amd64 单架构镜像浏览器信息注入构建末尾将MicrosoftEdge、版本号与二进制路径写入/opt/selenium/browsers/edge/供 Selenium Grid 生成 Node 的 stereotype 能力其中binary_location指向${SE_BROWSER_BINARY_LOCATION:-/usr/bin/microsoft-edge}允许运行时通过环境变量覆盖浏览器二进制位置。此外 NodeEdge/wrap_edge_binary 为/usr/bin/microsoft-edge生成了一层包装脚本设置umask 002、处理--lang参数、合并所有SE_BROWSER_ARGS_*前缀环境变量并以--no-sandbox启动浏览器以满足容器内以非 root 用户SEL_UID运行的约束。如何拉取并使用这些固定版本标签日志中的标签可以直接用于部署。以本次发布的node-edge为例拉取与 Grid 1.0 式Hub Node部署方式如下docker network create grid # 启动 Hub端口 4442-4444 docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.30.0-20250323 # 启动 Edge 节点务必使用 --shm-size 共享宿主机内存 docker run -d --net grid -e SE_EVENT_BUS_HOSTselenium-hub \ --shm-size2g \ selenium/node-edge:117.0-edgedriver-117.0-grid-4.30.0-20250323想让 WebDriver 测试连接到 Grid将测试指向http://localhost:4444即可日志中 12 个标签的完整形态同样适用于selenium/standalone-edge:117.0.2045.55-20250323等独立模式镜像可直接单容器运行整套 Grid若使用 docker-compose-v3.yml 一类的编排文件把其中selenium/node-edge:latest替换为上述任一固定标签即可将整个集群锁定到 Edge 117 与 Grid 4.30.0 的组合运行完清理网络docker network rm grid。更完整的标签组合示例含Major、Major.Minor等无日期标签可参见 docs/docker-hub/node-edge.md。官方建议生产环境优先使用浏览器版本 构建日期的完整标签来锁定具体构建。相关环境变量与节点清理机制固定版本标签之外Edge 节点镜像还暴露了若干与浏览器生命周期相关的运行时配置默认值见 ENV_VARIABLES.md环境变量默认值说明SE_ENABLE_BROWSER_LEFTOVERS_CLEANUPfalse是否启用浏览器残留清理守护进程SE_BROWSER_LEFTOVERS_PROCESSES_SECS7200清理超过该秒数的残留 msedge 进程SE_BROWSER_LEFTOVERS_TEMPFILES_DAYS1清理/tmp下超过该天数的.com.microsoft.Edge.*临时目录SE_BROWSER_LEFTOVERS_INTERVAL_SECS3600清理守护进程的循环间隔SE_NODE_ENABLE_MANAGED_DOWNLOADStrue由 Node 自动管理会话下载文件SE_OTEL_SERVICE_NAMEselenium-node-edgeOpenTelemetry 服务名构建时固化清理守护进程由 NodeEdge/edge-cleanup.conf 注册到 supervisordpriority20实际逻辑在 NodeEdge/edge-cleanup.sh先kill -9超龄的 msedge 进程等待 5 秒后删除临时文件再休眠一个间隔周期循环执行。这对长时间运行、大量会话反复创建销毁的测试集群非常实用——避免僵尸进程与磁盘碎片累积导致节点劣化。如何继续查阅完整发布历史本次日志是 4.30.0 版本归档记录的一部分。仓库的 CHANGELOG 目录按版本组织浏览器发布档案其中archived/4.30.0/下还有同期的edge_114.md至edge_136.md以及 Chrome、Firefox 对应档案格式与本文件一致CHANGELOG/4.48.0/则存放当前维护期的同类记录。需要横向对比不同浏览器、不同版本的标签差异或复现某次历史发布时这些档案与根目录的 tag_and_push_browser_images.sh 是相互印证的完整证据链。赞分享测试后端云原生容器编排可观测性【免费下载链接】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点击查看免费下载相关推荐golangci-lint 本地安装完全指南二进制、包管理器、Docker 与源码编译golangci lint 本地安装完全指南二进制、包管理器、Docker 与源码编译 本篇指南完整讲解 golangci lint 在本机环境下的全部安装方测试后端云原生容器编排可观测性docker-selenium Edge 117 发布镜像全解析版本标签、构建脚本与 Node 容器实战docker selenium Edge 117 发布镜像全解析版本标签、构建脚本与 Node 容器实战 本文基于 docker selenium 仓库 4.测试后端云原生容器编排可观测性CANN opbase 算子执行器复用aclSetAclOpExecutorRepeatable 接口原理与使用指南CANN opbase 算子执行器复用aclSetAclOpExecutorRepeatable 接口原理与使用指南 本文围绕 CANN opbase 框架库测试后端云原生容器编排可观测性上一篇为什么选择Simulated Hospital医疗数据模拟工具的5大核心优势下一篇wacli媒体下载详解--download-media、backfill与自动重试创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表