docker中心镜像更新后触发VSTS生成

我运行一个docker镜像在windows server 2016上进行数据处理(单个vm,On Premises)。 我的图像存储在Azure容器registry中。 代码不会经常更改。 获取安全更新我喜欢在microsoft / windowsservercore更新后重build和发布。

有没有一个最佳实践方法来做到这一点?

我想到了解决这个问题的三种方法:

  1. 每24小时运行一次预定的构build,拉微软/ windowsservercore,拉我的自定义图像,运行powershell获取生成date,然后比较(或使用一些histroy ID)。 如果需要重build,则构build新图像并标记构build。 将版本configuration为仅在此标签上运行。
  2. 运行作业来检查Docker镜像的更新时间,并使用REST请求触发构build。
  3. 把一个基本的Dockerfile在github上。 使用微软/ windows服务器核心的触发器设置自动生成,并将webhookconfiguration为启动“使用REST生成”的WebService。

但我真的很喜欢这些想法。 有更好的select吗?

您可以直接使用Azure容器registrywebhooks ,简单的工作stream程:

  1. 构build一个Web API项目,通过队列构buildRest API将每个构build的细节请求(webhook请求) 排队
  2. 创build一个Azure容器registrywebhook调用Web API(step1)

我select选项三。 因此,我用一行Dockerfilebuild立了一个github 仓库 :

FROM alpine 

我使用了高山形象,而不是windowsservercore,因为自动构build目前不支持Windows图像。 我在Docker Hub中configuration了一个自动构build,并将一个Linked Repositories添加到microsoft / windowsservercore 。 链接的资料库到windowsservercore 然后我用HTTP请求触发器build立一个MS Flow来启动Build。 流程开始构建 将stream程URL添加到自动构build中的新webhook。

对我来说,这是许多移动部件必须configuration和协同工作,但我知道没有更好的办法。