docker 中心图像更新后触发 VSTS 构建
Trigger VSTS Build after docker hub image update
我 运行 docker 图像用于 windows 服务器 2016 上的数据处理(单个虚拟机,内部部署)。我的图像存储在 Azure 容器注册表中。代码不会经常更改。为了获得安全更新,我希望在 microsoft/windowsservercoreis 更新后进行重建和发布。
是否有执行此操作的最佳实践方法?
我考虑了 3 种解决方法:
- 运行 每 24 小时计划构建一次,拉取 microsoft/windowsservercore,拉取我的自定义图像,运行 powershell 获取构建日期并进行比较(或使用一些历史记录ID)。如果需要重建,构建新图像并标记构建。仅在此标签上将 Release 配置为 运行。
- 运行 一个作业,用于检查 docker 图像的更新时间并使用 REST 请求触发构建。
- 在 github 上放置一个基本的 Dockerfile。使用 microsoft/windowsservercore 的触发器设置自动构建并将 webhook 配置为 WebService,这将使用 REST 启动构建。
但我真的不喜欢这些想法。还有更好的选择吗?
可以直接使用Azure Container Registry webhooks,简单的工作流程:
- 构建一个 Web Api 项目以通过 Queue a build Rest API
对每个详细请求(webhook 请求)的构建进行排队
- 创建 Azure 容器注册表 webhook 以调用 Web API(第 1 步)
我选择选项三。因此我设置了一个 github repository with a one line Dockerfile:
FROM alpine
我使用了 alpine 镜像而不是 windowsservercore,因为自动构建目前不支持 windows 镜像。我在 docker 集线器中配置了自动构建,并将链接存储库添加到 microsoft/windowsservercore。
然后我设置了一个 MS Flow with a HTTP Request Trigger to start the Build. 将 Flow URL 添加到自动构建上的新 webhook。
对我来说,这是许多必须配置和协同工作的移动部件,但我不知道更好的方法。
我 运行 docker 图像用于 windows 服务器 2016 上的数据处理(单个虚拟机,内部部署)。我的图像存储在 Azure 容器注册表中。代码不会经常更改。为了获得安全更新,我希望在 microsoft/windowsservercoreis 更新后进行重建和发布。
是否有执行此操作的最佳实践方法?
我考虑了 3 种解决方法:
- 运行 每 24 小时计划构建一次,拉取 microsoft/windowsservercore,拉取我的自定义图像,运行 powershell 获取构建日期并进行比较(或使用一些历史记录ID)。如果需要重建,构建新图像并标记构建。仅在此标签上将 Release 配置为 运行。
- 运行 一个作业,用于检查 docker 图像的更新时间并使用 REST 请求触发构建。
- 在 github 上放置一个基本的 Dockerfile。使用 microsoft/windowsservercore 的触发器设置自动构建并将 webhook 配置为 WebService,这将使用 REST 启动构建。
但我真的不喜欢这些想法。还有更好的选择吗?
可以直接使用Azure Container Registry webhooks,简单的工作流程:
- 构建一个 Web Api 项目以通过 Queue a build Rest API 对每个详细请求(webhook 请求)的构建进行排队
- 创建 Azure 容器注册表 webhook 以调用 Web API(第 1 步)
我选择选项三。因此我设置了一个 github repository with a one line Dockerfile:
FROM alpine
我使用了 alpine 镜像而不是 windowsservercore,因为自动构建目前不支持 windows 镜像。我在 docker 集线器中配置了自动构建,并将链接存储库添加到 microsoft/windowsservercore。
对我来说,这是许多必须配置和协同工作的移动部件,但我不知道更好的方法。