내 CodePipeline에는 현재 Github 소스와 이미지를 빌드하고 ECR로 푸시하는 CodeBuild가 있습니다.
+---------------+ +-----------+ +-----+
| GitHub Source +----->+ CodeBuild +---->+ ECR |
+---------------+ +-----------+ +-----+
ECR에 푸시 된 이미지를 가져와 ECS에 배포하는 CodeDeploy 단계를 파이프 라인에 추가하고 싶습니다. 하지만 내 CodeBuild 단계는 아티팩트를 생성하지 않습니다 (ECS에 업로드되며 ECR 이미지를 아티팩트로 정의하는 방법을 모릅니다). 그래서 CodeDeploy를 파이프 라인에 연결할 수 없습니다. 이 작업을 수행하는 방법을 아십니까?
+---------------+ +-----------+ +-----+ +------------+ +-----+
| GitHub Source +----->+ CodeBuild +---->+ ECR +----->+ CodeDeploy +---->+ ECS |
+---------------+ +-----------+ +-----+ +------------+ +-----+
제가 생각할 수있는 유일한 해결책은 ECR을 소스로 사용하고 배포를 수행 할 두 번째 파이프 라인을 만드는 것입니다.
Pipeline 1
+---------------+ +-----------+ +-----+
| GitHub Source +----->+ CodeBuild +---->+ ECR |
+---------------+ +-----------+ +-----+
Pipeline 2
+-----+ +------------+ +-----+
| ECR +----->+ CodeDeploy +---->+ ECS |
+-----+ +------------+ +-----+
imagedefinitions.json
ECS 표준 배포 작업 또는 imageDetail.json
Amazon ECS Blue / Green 배포 작업에 대해 이름이 지정된 json 파일이 될 아티팩트를 정의해야합니다 . 여기 에있는 참조에 설명되어 있습니다 .
제 경우에는 표준 배포를 수행했기 때문에 buildspec.yml
빌드가 끝날 때 두 개의 추가 명령을 추가했습니다.
phases:
build:
commands:
...Build and push to ECR...
echo Generating imagedefinitions.json
echo '[{"name":"<CONTAINER-NAME>","imageUri":"'<IMAGE-URI>"}]' > imagedefinitions.json
artifacts:
files:
- imagedefinitions.json
그런 다음 파일을 아티팩트로 추가했습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다