我正在尝试将图像推送到 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
I gave gitlab+deploy-token-91931
标记两者read_repository
and read_registry
rights.
我的仓库是:
https://gitlab.com/mycompany/rgpd_api
我检查了文档页面:https://docs.gitlab.com/ee/user/project/container_registry.html https://docs.gitlab.com/ee/user/project/container_registry.html
但是当我通过 Gitlab CI 执行此操作时,gitlab-ci-token
我可以正常推。
我也尝试重新生成一个新的令牌,但仍然是同样的问题。
我该如何解决它?
我也偶然发现了这个问题,事实证明
- 组级部署令牌可用于将映像推送到组级容器注册表,类似于具有 API 访问权限或其他适用范围的 PAT 令牌。
- 图片must被标记为与匹配的标签existing集团内的项目。
- 任何带有不同标记的图像都将被拒绝
denied: requested access to the resource is denied
错误信息。
因此,通过以下设置:
- GitLab 小组名为
mytest
- 该小组内的项目称为
hello-world
- Docker 镜像标记为
registry.gitlab.com/mytest/hello-world
- 部署为整个组创建的令牌
- Docker 守护进程被授权推送到该注册表
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
因此,必须再次标记图像以匹配组内的现有路径,例如组或子组内的现有项目。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)