一、什么时候需要用到NuGet私有服务器
很多公司中架构师会搭建一个统一的项目基础架构模板,然后全部新项目都会拿这个基础架构来开发新的项目,那架构中就会有很多的中间件,比喻公司内部的封装好的Redis中间件,访问数据库的中间件,MQ中间件,小程序中间件等等。
现在很多项目都用这个模板开发了,然后其中一个中间件有问题了或要加功能,那么全部项目都要把这个中间件修改一遍。可能不同项目在不同的组不同的负责人,通知起来也麻烦。这时候就可以把这些中间件做成一个NuGet包了,然后全部项目都可以通过NuGet包安装,有更新就更新NuGet包,各个项目更新NuGet包就行了。但这些NuGet包不能上传到公开的NuGet服务器上,因为这些NugGet包只能公司内部用的,为了安全性考虑,就需要搭建自己的私有NuGet服务了。

二、ProGet搭建
Nexus:支持NuGet,有点重。
MyGet:Nuget云服务,不适合企业内私有部署。
BaGet:简单易用,但还没有实现身份认证,上传的包谁都能Down下来,界面也不需要登录就能访问,因为安全原因只能放弃。
ProGet:商业软件,支持nuget、npm、docker等,但它是.NET生态应用,而且还提供了免费版本,身份认证、权限方面控的很好,功能也多。
这里各种对比下选用ProGet 用Docker方式搭建一个内部的NuGet服务器。
2.1、ProGet搭建
创建网络
这里是创建一个和SQL Server共同的网络,如果已经装有SQL Server了,则不需要这步
docker network create inedo

创建一个SQL Server
如果有SQLServer数据库,跳过这一步。文档里只说了需要SQL Server,是否兼容其它数据库还没尝试,旧版本的时候是可以用PgSQL的。

#docker 部署免费版本sqlserver docker run --name inedo-sql \ -v /etc/localtime:/etc/localtime:ro \ -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=sa123456' \ -e 'MSSQL_PID=Express' --net=inedo --restart=unless-stopped \ -d mcr.microsoft.com/mssql/server:2019-latest

本文介绍了在公司内部使用NuGet私有服务器的必要性,如统一项目模板和中间件管理。推荐使用ProGet作为私有服务器,因为它支持多种包类型并提供身份验证。文章详细阐述了如何使用Docker搭建ProGet,包括创建网络、数据库,以及设置用户权限和发布下载NuGet包的过程。此外,还提到了通过NuGet.config文件来管理源,以方便开发和部署。
585

被折叠的 条评论
为什么被折叠?



