基于Nexus的第三方Nuget源搭建
Nexus 是支持 Nuget、Docker、Npm 等多种包的仓库管理器,可用做私有包的存储分发,缓存官方包。
https://help.sonatype.com/en/sonatype-nexus-repository.html
环境需求
- Docker
安装
- 创建数据挂载目录并赋予权限
mkdir data && chown -R 200 data - 创建 docker-compose. Yml 文件
version: '3.1' |
- 运行
docker compose up -d - 等待片刻,nexus 需要时间构建,在此期间访问可能导致 apache 2 占用 8081 接口
- 访问
http://${server_address}:8081即可 - 右上角 Login,管理员默认登录密码在
data/admin.password,这里使用 admin + admin. Password 登录后会提示修改密码,修改后 admin. Password 文件会直接被删除,不要使用原密码!! - 提示可以禁止匿名访问,这样仅有授权用户可以访问资源
Nuget 配置
仓库说明
Nexus 有三个默认仓库
- Nuget-group:组合存储库,可以将多个远程或本地存储库组合成一个虚拟存储库,默认包含 nuget-hosted,nuget. Org-proxy。拉取包的地址一般配置此仓库地址
- Nuget-hosted:托管存储库,本地发布的包可以存储到此存储库。推送包的地址需要配置此仓库地址
- Nuget. Org-proxy:代理存储库,缓存 nuget. Org 的包并从本地服务器上提供它们
权限配置
- 点击齿轮可进入设置,在 Roles 中可创建角色,Users 中可创建用户,可以为角色分配相应的不同权限,角色之间也可以互相包含
Nuget 秘钥
- 点击右上角的 User 图标,可以看到左边第二栏 Nuget API Key

点击 Access API Key,按照提示即可

此时秘钥无法直接使用,需要在设置 Security-> Realms 中启用 NuGet API-Key Realm
https://help.sonatype.com/en/realms.html#Realms-NuGetAPI-KeyRealm

设置部署策略
默认 nuget 包托管是启用了,而为了防止包被恶意篡改,可以将 nuget-hosted 仓库修改为禁用重新部署,多人协同开发时可防止包被被其他人覆盖。在设置了禁用重新部署时,推送重复包的时候将会返回 400 错误
https://help.sonatype.com/en/namespace-confusion-protection.html#NamespaceConfusionProtection-ConfigureNexusRepository3
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 墨池码窖 | Sentixxx's Blog!
评论

