我已经为Docker安装了Sonatype Nexus 3 OSS和托管存储库(Docker的私有注册表)。我希望有几个用户,可以根据他们的权限提取/推送泊坞窗图像。
第一种方式,我怎么做 - 是为docker创建几个托管存储库,然后通过Securiy创建 - >权限使用存储库视图,这种方法基于确切的存储库配置权限:
username: repository name: permission:
user1 docker-internal-1 nexus:repository-view-:docker:docker-internal-1:read
user2 docker-internal-1 nexus:repository-view-:docker:docker-internal-1:add
user3 docker-internal-2 nexus:repository-view-:docker:docker-internal-2:read
user4 docker-internal-2 nexus:repository-view-:docker:docker-internal-2:add
这种方法有效,但它需要为docker提供多个托管存储库。
我的问题是 - 是否有可能为Docker安装一个单独的托管存储库,然后根据docker存储库名称空间配置权限?
所以,假设我有一个名为 docker-internal 的存储库,然后我有这样的权限:
username: repository name: permission:
user1 docker-internal nexus:repository-view-:docker:docker-internal/namespace1:read
user2 docker-internal nexus:repository-view-:docker:docker-internal/namespace1:add
user3 docker-internal nexus:repository-view-:docker:docker-internal/namespace2:read
user4 docker-internal nexus:repository-view-:docker:docker-internal/namespace2:add
不幸的是在Nexus 3 documentation我找不到使用存储库视图权限的方法,因为它们只允许您指定存储库名称,但没有命名空间。然后有通配符这样的东西,它在Sonatype docs中描述,例如“Wildcard - >这些是使用模式对其他权限进行分组的权限。”所以我试图像这样创建一些正则表达式模式:
nexus:repository-view:docker:docker-internal/namespace1:read
不幸的是它不起作用。