首页 > 解决方案 > 在 ECR 中删除最新标签时使用什么图像

问题描述

我正在使用 bitbucket 管道部署以前上传到 ECR 的 docker 映像,使用:

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-pipelinesafter-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标签的图像时,使用什么图像?有什么方法可以轻松找出吗?

标签: amazon-web-servicesdockeramazon-ecsbitbucket-pipelines

解决方案


推荐阅读