在基於詹金斯,碼頭工人和Artifactory的一個CI管道,我的分量建成,集裝箱,然後刊登了以下id來artifactory的部署特定的神器版本AWS ECS:如何在沒有硬編碼的ID在Cloudformation模板
docker.artifacts.mycompany.com/my-component:{Unix時間戳}
詹金斯的最後一個階段,然後還標記,神器與 「最新」 標籤:
docker.artifacts.mycompany.com/my-component:latest
通過這個Cloudformation模板,這個標籤允許AWS ECS拿起神器(標記爲 「最新」)並進行部署:
Parameters:
SourceInstanceRole:
Type: String
Description: The IAM role that the my-component instance will use
Default: Jenken-Automation
ImageRepository:
Type: String
Description: The name of the Docker repository which holds my-component Docker images
Default: docker.artifacts.mycompany.com
ImageName:
Type: String
Description: The name of the Docker image for my-component
Default: my-component
ImageVersion:
Type: String
Description: The version tag of my-component docker image in Artifactory
Default: latest
MyComponentTaskDefinition:
Type: AWS::ECS::TaskDefinition
Properties:
Volumes:
- Name: no-volume
ContainerDefinitions:
- Name: !Ref ContainerName
Essential: true
Memory: !Ref Memory
MemoryReservation: !Ref MemoryReservation
Image: !Sub ${ImageRepository}/${ImageName}:${ImageVersion}
我需要擺脫這種方式,因爲我希望能夠指定任何版本的部署工件 - 而不是「最新」。我的問題是:
如何在未對Cloudformation模板中的圖像版本進行硬編碼的情況下觸發將特定工件版本部署到ECS?
例如爲:docker.artifacts.mycompany.com/my-component:1500436061