通过 API 调用为 DockerHub 存储库创建新的构建规则

Unb*_*ess 5 api github docker dockerhub

我在 DockerHub 上有一个存储库,我已将其配置为直接与我的 GitHub 存储库连接,以便git提交将触发 Docker 映像的构建。

我希望为我的产品构建多个 Docker 映像(例如v1v2等)。

现在,我可以看到 DockerHub 为您提供了直接从门户配置“构建规则”的选项:

在此处输入图片说明

所以现在,当我对 进行更改时/releases/v1/Dockerfile,构建将自动触发。

凉爽的。

然而,展望未来,我希望发布/releases/v2/Dockerfile到我的 GitHub 存储库,我也希望v2自动构建,而不必手动创建“构建规则”。有没有办法以编程方式创建“构建规则”?

我希望调用 DockerHub API 来创建构建规则。我已经在https://docs.docker.com/registry/spec/api/ 浏览了 API 的文档, 但我找不到我想要的东西。

我想结束:

在此处输入图片说明

wherev2是以编程方式创建的,而不是从控制台创建的。

BMi*_*tch 0

Docker Hub 遵循 git 约定,您通常不会将不同版本的应用程序放在同一个 git 提交中。相反,您可以为不同版本的代码使用单独的分支和标签。如果您遵循 git 约定,那么您可以根据分支或标记上的正则表达式标记生成的图像。例如

  • 来源类型:Branch
  • 来源:/^v([0-9.]+)$/
  • 码头工人标签:v{\1}

然后,您可以在名为(或任何其他版本号)的分支中构建v1.1,并且 docker 映像将被标记为v1.1. 要仅提取标签的第一个数字,如下所示:

  • 来源类型:Tag
  • 来源:/^v([0-9]+)[0-9.]*$/
  • 码头工人标签:v{\1}

这会将带有版本号的标签转换v10.1.2为 docker 标签(只有在正则表达式的第一部分中匹配之前v10的数字)。.

有关其构建规则的更多详细信息,请参阅: https ://docs.docker.com/docker-hub/builds/#set-up-build-rules

关于 API,虽然注册表本身有一个记录的 API,并且 Hub在 beta 版中有一个用于 Hub 的 API,但这些都没有公开构建设置。您可以尝试通过嗅探浏览器流量并将其复制到您的应用程序中来捕获调用,但 Docker 可以随时修改这些调用,因为它们不支持 API。