我有一个私有的PyPI存储库.有没有办法存储pip.conf类似的凭证.pypirc?
我的意思是说.目前.pypirc你可以有这样的配置:
[distutils]
index-servers = custom
[custom]
repository: https://pypi.example.com
username: johndoe
password: changeme
Run Code Online (Sandbox Code Playgroud)
从我发现你可以放入pip.conf:
[global]
index = https://username:password@pypi.example.com/pypi
index-url = https://username:password@pypi.example.com/simple
cert = /etc/ssl/certs/ca-certificates.crt
Run Code Online (Sandbox Code Playgroud)
但在这里我看到两个问题:
有没有办法在网址之外存储用户名和密码?
我已经安装了Sonatype Nexus 3 OSS和Docker的托管存储库(Docker的私有注册表).我希望有几个用户,可以根据他们的权限提取/推送泊坞窗图像.
第一种方式,我怎么做 - 是为docker创建几个托管存储库,然后通过Securiy - > Privileges使用存储库视图,这种方法基于确切的存储库配置权限:
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
Run Code Online (Sandbox Code Playgroud)
这种方法有效,但它需要为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
Run Code Online (Sandbox Code Playgroud)
不幸的是,在Nexus 3文档中,我还没有找到一种如何使用存储库视图权限来执行此操作的原因,因为它们只允许您指定存储库名称,但不允许指定存储库名称.然后就是通配符,它在Sonatype docs中描述,如"通配符 - >这些是使用模式对其他权限进行分组的权限".所以我试图像这样创建一些正则表达式模式:
nexus:repository-view:docker:docker-internal/namespace1:read
Run Code Online (Sandbox Code Playgroud)
不幸的是它不起作用.
我正在尝试使用curl通过bash将目录的内容上传到nexus,并且在我正在使用的命令中遇到一些问题
简而言之,我想在特定目录上执行find命令,并使用-exec {}动作对nexus进行curl
但是我的find命令返回包含源目录的文件路径,我想更改它,所以我只显示内容而不是完整路径
例如,假设我有一个名为trunk的目录,其中包含这些文件和子目录
trunk/directory1/file1
trunk/directory2/file1
trunk/directory2/file2
Run Code Online (Sandbox Code Playgroud)
我希望我的find命令返回
directory1/file1
directory2/file1
directory2/file2
Run Code Online (Sandbox Code Playgroud)
然后这可以传递给我的exec命令
我当前的find命令是: -
find trunk -type f -exec curl --user user:pass --ftp-create-dirs -T {} https://PATH_TO_NEXUS/{} \;
Run Code Online (Sandbox Code Playgroud)
除了在nexus中创建的文件外,这个工作正常
https://PATH_TO_NEXUS/trunk/directory1/file1
Run Code Online (Sandbox Code Playgroud)
而我想要的是
https://PATH_TO_NEXUS/directory1/file1
Run Code Online (Sandbox Code Playgroud)
有人有任何想法吗?