代码之家  ›  专栏  ›  技术社区  ›  sschoof

在docker hub映像更新后触发VSTS生成

  •  0
  • sschoof  · 技术社区  · 7 年前

    我在windows server 2016上运行docker映像进行数据处理(单个虚拟机,内部部署)。我的图像存储在Azure容器注册表中。代码不会经常更改。为了获得安全更新,我希望在microsoft/WindowsServerCore更新后进行重建并发布。

    有没有最佳实践方法可以做到这一点?

    我想了三种解决方法:

    1. 每隔24小时运行一次计划的构建,拉取microsoft/windowsservercore,拉取我的自定义图像,运行powershell获取构建日期并进行比较(或者使用一些histroy ID)。如果需要重建,请构建新图像并标记构建。将版本配置为仅在此标记上运行。
    2. 运行作业以检查docker映像的更新时间,并使用REST请求触发构建。
    3. 在github上放置一个基本Dockerfile。使用microsoft/windowsservercore的触发器设置自动生成,并将webhook配置为WebService,后者使用REST启动生成。

    但我真的不喜欢这些想法。有更好的选择吗?

    2 回复  |  直到 7 年前
        1
  •  1
  •   starian chen-MSFT    7 年前

    您可以使用 Azure Container Registry webhooks 直接而言,简单的工作流:

    1. 构建一个Web Api项目,以根据详细信息请求(webhook请求)将构建排队,通过 Queue a build Rest API
    2. 创建Azure容器注册表webhook以调用Web API(步骤1)
        2
  •  0
  •   sschoof    7 年前

    repository 用一句话 Dockerfile :

    FROM alpine
    

    我使用的是alpine镜像,而不是windowsservercore,因为automated build目前不支持windows镜像。我在docker hub中配置了一个自动构建,并将链接的存储库添加到 microsoft/windowsservercore . Linked Repositories to windowsservercore 然后我建立了一个 MS Flow Flow to start the build 将流URL添加到自动构建上的新webhook。

    对我来说,这是许多移动部件必须配置和工作在一起,但我知道没有更好的方法。