2017-10-11 94 views
0

我在Windows服務器2016(單個vm,On Premises)上運行用於數據處理的docker映像。我的圖像存儲在Azure容器註冊表中。代碼不會經常更改。獲取安全更新我喜歡在microsoft/windowsservercore更新後重建和發佈。在Docker集線器映像更新後觸發VSTS生成

是否有最佳實踐方法來做到這一點?

我想到了3種方式解決這個的:每24小時,拉微軟/ windowsservercore,拉我的自定義圖像,運行PowerShell來獲取生成日期,然後比較

  1. 運行計劃版本(或使用一些histroy ID)。如果需要重建,請構建新圖像並標記構建。將發佈配置爲僅在此標記上運行。
  2. 運行作業以檢查Docker鏡像的更新時間,並使用REST請求觸發構建。
  3. 在github上放置一個基本的Dockerfile。使用微軟/ windows服務器核心的觸發器設置自動生成,並將webhook配置爲啓動使用REST生成的WebService。

但我真的很喜歡非這些想法。有更好的選擇嗎?

回答

0

我選擇選項三。因此,我成立了一個GitHub的repository有一行Dockerfile

FROM alpine 

我用了高山圖像,而不是windowsservercore,因爲自動生成當前確實不支持Windows圖像。我在碼頭集線器中配置了一個自動構建版本,並將鏈接庫添加到microsoft/windowsservercoreLinked Repositories to windowsservercore 然後我用HTTP請求觸發器設置了一個MS Flow來啓動Build。 Flow to start the build將流程URL添加到自動構建中的新webhook。

對我來說,這是許多移動部件必須配置和協同工作,但我知道沒有更好的方法。

1

您可以直接使用Azure Container Registry webhooks,簡單的工作流程:

  1. 生成Web API項目通過Queue a build Rest API
  2. 排隊每個細節請求(網絡掛接請求)構建創建Azure的容器註冊網絡掛接到調用Web API(step1)
+0

我想運行構建時更新microsoft/windowsservercore docker hub映像。但是acr webhook的文檔說:「當某個註冊表存儲庫**中的某個操作發生時,您使用webhooks觸發事件。」 – sschoof

+0

勾選這種方式[在Docker Hub上配置自動構建](https://docs.docker.com/docker-hub/builds/)。 (不清楚你的第三種方式,也許他們是相似的) –

+0

是的,這是我的第三個想法。 – sschoof