【发布时间】:2017-09-04 16:42:06
【问题描述】:
有没有一种方法可以让我们在部署作业的触发器部分通过 Jenkins 轮询工件中最新的 docker 镜像。
用例: 1.通过 Jenkins 编写一个 Kubernetes 部署作业,当我们在 artifactory repo 中有最新的 docker 镜像时将触发该作业。
【问题讨论】:
标签: docker jenkins kubernetes artifactory
有没有一种方法可以让我们在部署作业的触发器部分通过 Jenkins 轮询工件中最新的 docker 镜像。
用例: 1.通过 Jenkins 编写一个 Kubernetes 部署作业,当我们在 artifactory repo 中有最新的 docker 镜像时将触发该作业。
【问题讨论】:
标签: docker jenkins kubernetes artifactory
您可以使用URLTrigger Plugin 为您的工件部署实现轮询。
对于 Artifactory,您可以通过使用 REST API 来查看特定存储库中文件的 JSON 响应更改。
您可以为您的 Artifactory 配置 FileList API,格式如下:
http://org.server.com/artifactory/api/storage/<PATH_TO_FOLDER_OR_REPO>/
这会返回如下 JSON 响应:
{
"uri": "http://localhost:8081/artifactory/api/storage/libs-release-local/org/acme",
"created": ISO8601,
"files" : [
{
"uri": "/archived/doc1.txt",
"size": "253100", //bytes
"lastModified": ISO8601,
"folder": "false",
"sha1": sha1Checksum,
"mdTimestamps": { "properties" : lastModified (ISO8601) }
},...
]
}
因此,如果您的 repo 发生变化,JSON 响应将发生变化,此插件将比较响应并触发您的 Jenkins 作业。
【讨论】: