2017-06-16 88 views
0

我目前正在嘗試通過CodePipeline自動執行構建和部署過程。當我的代碼在codebuild中完成構建後,我想通過CodeBuild通過aws cli更新我的任務定義並更新我的服務。更新ECS中的任務定義

我在更新服務時遇到問題,因爲我無法跟蹤修訂版號。有沒有辦法讓更新的服務知道使用最新版本?我知道你可以指定一個json,但是我怎樣操縱修訂版本號,以便服務指向我註冊表中的正確圖像?

+0

您可以保留版本號(和結腸癌)關閉任務定義的強迫你的服務,使用最新的。 –

回答

0

讀一點亞馬遜api的文檔,並沒有告訴你哪個是上傳的最後一張圖片。我建議在上傳過程中捕獲能夠在服務中設置的版本。

當你列出圖像時,我給你留下了api的迴應。

響應語法:

{ 
    "imageIds": [ 
     { 
     "imageDigest": "string", 
     "imageTag": "string" 
     } 
    ], 
    "nextToken": "string" 
} 

一個可能的方法可以是:

  • 獲取你的回購的標籤:

TAG=$(git describe --always)

  • 構建IMA GE與此標籤:

docker build . -t [acount].dkr.ecr.[zone].amazonaws.com/[app]:TAG

  • 推形象:

docker push [acount].dkr.ecr.[zone].amazonaws.com/[app]:TAG

  • 更新與圖像任務:

  • 更新服務與任務

希望這可以幫助你

+0

非常感謝你的幫助,我最終使用了CodeBuild和全局環境變量中提供的版本號,這使得跟蹤每個圖像變得非常容易! – Serey