Docker Hub 构建分支正则表达式匹配不是主

Docker Hub builds branch regex match not master

我正在使用 Docker Hub 自动构建来创建图像。我想要的行为是将对 master 的所有提交标记为 latest,这很容易,并且还使用分支名称标记所有分支作为标记。

我有以下构建规则配置:

------------------------------------------
|Build Rules|Source          |Docker Tag |
------------------------------------------
|Branch     |master          |latest     |
------------------------------------------
|Branch     |/^(?!master$).*/|{sourceref}|
------------------------------------------

主分支构建正常,但其他分支不触发构建。有谁知道实现这个的方法吗?

不幸的是,所使用的正则表达式匹配器不支持否定前瞻 (?!)。

这里有一个关于决定在默认 Go 正则表达式引擎中不支持前瞻的帖子:https://groups.google.com/forum/#!topic/golang-nuts/7qgSDWPIh_E

不幸的是,我想不出任何解决方法,除了遵循使用像 _

这样的通用前缀的约定

正则表达式是 <prefix>.* 所以如果你最终使用 _ 那么它将是 _.*

PS:复制自

虽然正则表达式匹配器不支持否定前瞻,但您只需要更冗长一点。有 1000 种方法可以用正则表达式给猫皮,俗话说,"If it can't be done in regex, it can't be done."

/^([^m].....|.[^a]....|..[^s]...|...[^t]..|....[^e].|.....[^r]|.{0,5}|.{7,})$/

您可以在这里玩正则表达式:https://regexr.com/56v52