You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Renovate过滤ACR镜像前缀的Registry URL以匹配私有镜像?

解决Renovate Bot无法识别ACR私有镜像的问题

问题核心

你的docker-compose.yml中镜像写为<ACR_URL>/<TEAM>/prometheus:0.0.1,但ACR内的镜像实际名称是<TEAM>/prometheus。Renovate默认会把完整的<ACR_URL>/<TEAM>/prometheus当作包名去查询,导致匹配失败。

解决方案:修改renovate.json配置

通过packageRules调整包名识别规则,去掉ACR_URL前缀,让Renovate用正确的镜像名去ACR查询更新。

修改后的完整renovate.json

{
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
  "extends": [
    "config:base"
  ],
  "baseBranches": [
    "main"
  ],
  "hostRules": [
    {
      "matchHost": "$ACR_URL",
      "username": "$ACR_USER",
      "password": "$ACR_TOKEN"
    }
  ],
  "packageRules": [
    {
      "groupName": "all non-major dependencies",
      "groupSlug": "all-minor-patch",
      "matchPackagePatterns": [
        "*"
      ],
      "registryUrls": [
        "$ACR_URL"
      ]
    },
    {
      // 匹配带ACR_URL前缀的Docker镜像
      "matchDatasources": ["docker"],
      "matchPackageNames": ["<ACR_URL>/<TEAM>/*"],
      // 将包名替换为ACR内的实际名称(去掉ACR_URL前缀)
      "packageNameTemplate": "{{packageName | replace('<ACR_URL>/', '')}}",
      // 指定查询的私有仓库地址
      "registryUrls": ["$ACR_URL"]
    }
  ]
}

配置说明

  • matchPackageNames:精准匹配所有以<ACR_URL>/<TEAM>/开头的Docker镜像,确保只调整你的团队镜像。
  • packageNameTemplate:使用Renovate模板语法,去掉包名中的<ACR_URL>/前缀,让Renovate用<TEAM>/prometheus去ACR查询更新。
  • registryUrls:明确指定查询的私有ACR地址,配合hostRules中的认证信息,确保Renovate能访问私有仓库。

验证方法

修改配置后,重新触发Renovate扫描:

  • 在Gitlab中手动运行Renovate流水线
  • 查看日志,确认packageName已变为<TEAM>/prometheus,且不再出现"Failed to look up docker package"警告

内容的提问来源于stack exchange,提问作者Byang117

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 21:35:05