Codepipeline using ECR to deploy ECS
- Source stage 選 ECR 及對應的 registry
Source stage 會產生 artifactimageDetail.json
- Build stage 選 CodeBuild
CodeBuild 的 buildspec 如下:這是把 Source 產生的1
2
3
4
5
6
7
8
9
10
11
12
13
14version: 0.2
phases:
build:
commands:
- ContainerName="[CONTAINER_NAME]"
- ImageURI=$(cat imageDetail.json | jq -r '.ImageURI')
- printf '[{"name":"CONTAINER_NAME","imageUri":"IMAGE_URI"}]' > imagedefinitions.json
- sed -i -e "s|CONTAINER_NAME|$ContainerName|g" imagedefinitions.json
- sed -i -e "s|IMAGE_URI|$ImageURI|g" imagedefinitions.json
- cat imagedefinitions.json
artifacts:
files:
- imagedefinitions.jsonimageDetail.json
產生imagedefinitions.json
。要把其中的[CONTAINER_NAME]
改成 container 名稱。 - Deploy stage 選 ECS,選擇對應的 cluster 跟 service
- 調整 ECS minimum healthy percentage 跟 maximum percentage 的值以及 cluster 內 EC2 instance 的數量,沒調整好 deployment 可能會卡住。
- 可以從 ECS service deployment 看 deploy 的狀況。