将容器镜像迁移至Artifact Registry:Finalise步骤失败求助
解决容器镜像迁移至Artifact Registry时Finalise步骤报错
Failed to finalise gcr.io routing: Precondition check failed. 检查账号权限:确保操作账号拥有以下权限:
artifactregistry.repositories.updatecontainerregistry.settings.updateiam.serviceAccounts.setIamPolicy(若涉及服务账号权限配置)
可通过命令验证权限:
gcloud projects get-iam-policy [你的项目ID] --filter="bindings.members:你的账号邮箱" --format="value(bindings.role)"确认GCR仓库完全清空:Finalise切换路由前会检查原GCR仓库是否无残留镜像,执行以下命令排查:
# 列出所有GCR仓库 gcloud container images list --repository=gcr.io/[你的项目ID] # 检查单个仓库的所有镜像标签 gcloud container images list-tags gcr.io/[你的项目ID]/[仓库名] --filter="tags:*"若有残留镜像,用
gcloud container images delete命令彻底删除。验证AR仓库同步状态:确认对应Artifact Registry仓库已完成所有镜像同步,执行命令核对:
gcloud artifacts docker images list [你的AR仓库地址,如us-central1-docker.pkg.dev/项目ID/仓库名]排查路由配置冲突:检查是否存在重复的gcr.io路由规则:
gcloud artifact registry settings list --project=[你的项目ID]若有冲突规则,先删除旧规则再重试Finalise。
重置迁移任务状态:若之前的迁移任务有残留状态,前往GCP控制台的Artifact Registry迁移页面,删除旧迁移任务后重新发起(可跳过镜像同步,直接进入Finalise步骤)。
检查组织级政策限制:若为组织下属项目,确认组织政策未限制Artifact Registry路由切换,比如
constraints/artifactregistry.allowedRepositoryTypes是否允许Docker类型仓库,无gcr.io路由修改的限制政策。
内容的提问来源于stack exchange,提问作者Lance Armah-Abraham
相关产品推荐
相关产品推荐

