Я создал CodePipeline с использованием CodeBuild и CodeDeploy, которые должны быть развернуты в активном кластере ECS.
Контейнер собирается без проблем.
И buildspec.yml, и appspec.yml находятся в корне хранилища и имеют следующий вид:
buildspec.yml:
version: 0.2
phases:
pre_build:
commands:
- echo Logging in to Amazon ECR...
- aws --version
- $(aws ecr get-login --region $AWS_DEFAULT_REGION --no-include-email)
- REPOSITORY_URI=555.dkr.ecr.us-east-1.amazonaws.com/name
- COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
- IMAGE_TAG=${COMMIT_HASH:=latest}
build:
commands:
- echo Build started on `date`
- echo Building the Docker image...
- docker build -t $REPOSITORY_URI:latest .
- docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG
post_build:
commands:
- echo Build completed on `date`
- echo Pushing the Docker images...
- docker push $REPOSITORY_URI:latest
- docker push $REPOSITORY_URI:$IMAGE_TAG
- echo Writing image definitions file...
- printf '[{"name":"name","imageUri":"%s"}]' $REPOSITORY_URI:$IMAGE_TAG > imagedefinitions.json
artifacts:
files:
- appspec.yml
- imagedefinitions.json
appspec.yml:
version: 1.0
Resources:
- TargetService:
Type: AWS::ECS::Service
Properties:
TaskDefinition: "arn:aws:ecs:us-east-1:555:task-definition/name:1"
LoadBalancerInfo:
ContainerName: "name"
ContainerPort: "80"
PlatformVersion: "LATEST"
CodeDeploy завершается ошибкой со следующим сообщением об ошибке:
Требуется файл AppSpec, но он не найден в ревизии
После просмотра ссылочных артефактов ревизии в S3 я могу убедиться, что правильный файл appspec.yml существует в корневом каталоге архива и соответствует описанному выше.
Что может быть не так с этой конфигурацией?