我正在使用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-pipelines 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
标签的图像时,使用什么图像?有什么办法可以让我轻松找到吗?