以前在Windows上搭建Nuget服务器,可以使用Nuget.Server包,现在需要部署在Linux,还好网上已经有了相应的解决方案:simple-nuget-serversonatype/nexus3

本文以 simple-nuget-server 为例。

安装docker

ubuntu 直接使用下面命令安装 docker

apt install docker.io

运行simple-nuget-server

先创建一个目录,用于存储nuget的数据库和包。

mkdir /root/nuget

启动simple-nuget-server

docker run -d -p 9022:80 -e NUGET_API_KEY=<认证秘钥> -v /root/nuget/database:/var/www/db -v /root/nuget/packages:/var/www/packagefiles --name nuget-server sunside/simple-nuget-server

映射的容器端口号是80,外部端口号可以自定义。NUGET_API_KEY环境变量设置nuget的认证密钥。

此时在本地就可以访问 http://localhost:9022 了。

实际应用中还需要使用nginx反向代理,绑定域名,权限认证等。


补充

如果以后忘记了NUGET_API_KEY,可以通过以下命令查看:

docker inspect <CONTAINER-NAME> OR <CONTAINER-ID>

然后在结果里找到
Config/Env/NUGET_API_KEY节点。

2019-10-09更新

发现一款好用的NuGet服务器,而且支持NuGet V3 API,它就是:BaGet