问题描述
我可以访问 GitLab Container Registry 并且可以按如下方式推送图像:
docker login --username $my_username -p $my_token $my_server/$my_project
docker tag $my_image:latest $my_server/$my_project/$my_image:latest
docker push $my_server/$my_project/$my_image:latest
我现在也想使用 Container Registry API 并尝试过这个(我想随后列出所有标签):
curl -H "PRIVATE-TOKEN: $my_token" https://$my_server/api/v4/projects/$my_project/registry/repositories
但是,这会导致“找不到 404 页面”。我错过了什么,根据文档,URL 不应该是有效的吗?
解决方法
我现在已经得出结论,最可能的原因是我的访问令牌 $my_token
仅被 GitLab 管理员授予了有限的权限。
这可能包括作用域 read_registry 和 write_registry,但不包括 api。显然,没有 GitLab API 的其余部分,就没有专门涵盖 Container Registry API 的范围。