Какое изображение используется при удалении последнего тега в ECR? - PullRequest
1 голос
/ 05 апреля 2019

Я использую конвейеры bitbucket для развертывания образа докера, ранее загруженного в ECR, используя:

docker tag 
docker push

Два тега, которые я даю недавно загруженному изображению: ${BITBUCKET_BUILD_NUMBER} и latest

На последнем шаге моего конвейера это изображение будет повторно развернуто с помощью

aws ecs update-service --cluster clusterName --service $BITBUCKET_REPO_SLUG --force-new-deployment

Определение задачи для службы ECS установлено на использование :latest

Я хотел бы добиться правильной обработки развертываний, которые не выполняются после начального этапа тестирования и анализа, когда образ уже развернут в ECR. Я хотел бы предотвратить развертывание этого «неисправного» образа, поэтому я использую bitbucket-конвейеры after-script, чтобы отменить пометку и, таким образом, также удалить этот образ, когда шаг завершается неудачей:

if [ $BITBUCKET_EXIT_CODE == 1 ]; then aws ecr batch-delete-image --repository-name repo/$BITBUCKET_REPO_SLUG --image-ids imageTag=latest; fi
if [ $BITBUCKET_EXIT_CODE == 1 ]; then aws ecr batch-delete-image --repository-name repo/$BITBUCKET_REPO_SLUG --image-ids imageTag=${BITBUCKET_BUILD_NUMBER}; fi

Задача все еще может быть успешно перезапущена, и когда я установил $BITBUCKET_EXIT_CODE == 0 во время пробных запусков, конвейер может развернуть «что-то». У меня вопрос: какое изображение используется, когда на ECR нет изображения с тегом latest? Есть ли способ, которым я могу легко узнать?

...