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

自托管Renovate Bot匹配linuxserver.io稳定镜像的正则优化求助

问题:Renovate Bot正则匹配linuxserver.io稳定镜像标签

我搭建了自托管Renovate Bot,因linuxserver.io的Docker标签格式多样,转而使用正则匹配版本。现有配置如下:

{
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
  "extends": [
    "config:base",
    "docker:enableMajor"
  ],
  "packageRules": [
    {
      "packagePatterns": ["^ghcr.io\\/linuxserver\\/"],
      "versionScheme": "regex:MYFANCYREGEX"
    }
  ]
}

测试标签示例(仅需匹配前7行稳定标签,排除后5行非稳定标签):

100.200.300
100.200.300.7068-ls170
v100.200.300-ls213
version-100.200.300
version-100.200.300-ls180
version-100.200.300.11111
100.200.300.7068-ls170
nigthly-100.200.300  -> 非稳定,不匹配
nightly-100.200.300.3604-ls587  -> 非稳定,不匹配
100.200.300-development -> 非稳定,不匹配
100.200.300-develop -> 非稳定,不匹配
100.200.300-nigthly -> 非稳定,不匹配

我无法通过(?!或^)排除含特定内容的标签,需要调整正则以仅匹配稳定构建及带ls/build编号的镜像更新。


解决方案

正则表达式

使用以下正则匹配符合要求的稳定标签:

^(?!.*(nightly|nigthly|develop|development))(?:v?|version-)?\d+(?:\.\d+)*(?:-ls\d+)?$

更新后的Renovate配置

{
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
  "extends": [
    "config:base",
    "docker:enableMajor"
  ],
  "packageRules": [
    {
      "packagePatterns": ["^ghcr.io\\/linuxserver\\/"],
      "versionScheme": "regex:^(?!.*(nightly|nigthly|develop|development))(?:v?|version-)?\\d+(?:\\.\\d+)*(?:-ls\\d+)?$"
    }
  ]
}

正则逻辑说明

  • ^(?!.*(nightly|nigthly|develop|development)):前置断言,直接排除包含任意指定非稳定关键词的标签(包含拼写错误的nigthly)
  • (?:v?|version-)?:匹配可选的前缀v或version-
  • \d+(?:\.\d+)*:匹配核心版本号格式(如100.200.300或100.200.300.7068)
  • (?:-ls\d+)?:匹配可选的-ls构建后缀(如-ls170)
  • $:确保标签完整匹配到末尾,避免部分匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 01:42:13