![](/img/trans.png)
[英]Resource access denied when pushing container to Azure Container Registry
[英]denied: requested access to the resource is denied when pushing image to gitlab registry
我正在尝试将图像推送到 gitlab 注册表。
我已经做过很多次了,所以我想知道为什么会出现此错误。
我用最新的标签构建图像:
Successfully tagged registry.gitlab.com/mycompany/rgpd_api:latest
然后我登录并推送:
docker login registry.gitlab.com -u gitlab+deploy-token-91931
docker push registry.gitlab.com/mycompany/rgpd_api:latest
但我得到:
The push refers to repository [registry.gitlab.com/mycompany/rgpd_api]
be679cc302b9: Preparing
denied: requested access to the resource is denied
我给了gitlab+deploy-token-91931
token read_repository
和read_registry
权限。
我的回购是:
https://gitlab.com/mycompany/rgpd_api
我查看了文档页面:https://docs.gitlab.com/ee/user/project/container_registry.html
但是当我通过 Gitlab CI 和gitlab-ci-token
我可以正常推动它。
我也尝试重新生成一个新令牌,但仍然是同样的问题。
我该如何解决?
我也偶然发现了这个问题,结果证明
denied: requested access to the resource is denied
错误消息。因此,使用以下设置:
mytest
的 GitLab 组hello-world
registry.gitlab.com/mytest/hello-world
的 Docker 镜像cat "<deploy_token>" | docker login -u "<token_username>" --password-stdin registry.gitlab.com
cat "<deploy_token>" | docker login -u "<token_username>" --password-stdin registry.gitlab.com
您将得到以下结果:
docker push registry.gitlab.com/mytest/hello-world
,因为该项目存在于组内denied: requested access to the resource is denied
如果您尝试推送标有项目名称但组中不存在的项目名称(如docker push registry.gitlab.com/mytest/no-project
),则请求的资源访问被拒绝因此,必须再次标记图像以匹配组中的现有路径,例如组或子组中的现有项目。
我的错误是使用部署令牌将图像推送到注册表。
部署令牌可用于拉取镜像,但不能推送。
因此,您可以生成个人访问令牌。 您应该至少添加权限:
read_registry, write_registry
确保您在设置中有正确的配置。
转到项目的设置,然后“可见性、项目功能、权限”并检查“容器注册表:每个项目都可以有自己的空间来存储其 Docker 映像”(仅限成员或所有人,由您决定)。 否则,推拉将被拒绝。
这发生在我身上,这就是我解决它的方法。
您可以让docker logout your registry
并重新登录。 它正在重新创建您的令牌。 就我而言,这项工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.