

使用docker的simple-nuget-server与baget搭建自己的.net私有nuget仓库

使用simple-nuget-server镜像搭建私有nuget仓库
新建2个挂载目录
一个用来存放db,一个用来存放包
mkdir -p /home/nuget/db
mkdir -p /home/nuge/packages
给创建的挂载目录添加权限
chmod -R 777 /home/nuget
拉取镜像与启动容器
拉取镜像
docker pull sunside/simple-nuget-server
启动容器
docker run -d -p 9090:80 -v /home/nuget/db:/var/www/db -v /home/nuget/packages:/var/www/packagefiles -e NUGET_API_KEY=ee28314c-f7fe--bd77-e09eda3d0119 sunside/simple-nuget-server
也可以不拉取镜像,直接启动容器,没有镜像它会自动拉取
启动成功后访问页面可以看到内容如下:
就很简单的一点内容,这个镜像没有去实现页面上的管理
打包与上传
怎么打包就不说了,项目右键打包即可,项目右键选择属性然后可以对包进行设置比如版本号什么的(打包的包在项目的bin\Debug下面)。打包好后可以把打包好的存放到一个文件夹里边,比如
然后进入这个目录,打开cmd命令窗口或者是powershell都可以,这里演示使用cmd
进入目录打开cmd之后,执行命令把里边的库都推送到我们搭建的私有仓库里边
dotnet nuget push *.nupkg -k ee28314c-f7fe--bd77-e09eda3d0119 -s http://192.168.6.226:9090/
这里的*.nupkg
表示上传这个文件夹下所有以nupkg结尾的,然后后边还接了密钥与地址。执行成功后效果如下:
包上传命令中的—skip-duplicate选项用于在发布过程中跳过已存在的重复。这个选项可以避免在推送包到服务器时重复上传相同的包,从而节省时间和资
dotnet nuget push <package_path> --skip-duplicate
上传成功后其实就可以下载了,下面就说一下下载
从自己的私有仓库中下载包
打开包管理器点击设置:
添加一个包源,填写好名称与地址,主要是地址写成我们自己搭建的那个地址
然后在程序包源哪里切换成我们刚刚创建的就可以看到我们上传的两个库了
点击安装也是没有任何问题的!
使用baget镜像搭建私有nuget仓库
进入var目录,创建baget文件夹
cd /var
mkdir baget
进入刚刚创建的文件夹/var/baget,创建一个名为baget.env的文件存储BaGet的配置
cd /var/baget
vim baget.env
在刚刚创建的配置文件中添加配置内容
# 以下配置是用于发布包的API密钥,您应该将其更改ApiKey的值以保护服务器。
ApiKey= AJ-Nuget-Packages-API-Key
Storage__Type=FileSystem
Storage__Path=/var/baget/packages
Database__Type=Sqlite
Database__ConnectionString=Data Source=/var/baget/baget.db
Search__Type=Database
Mirror__Enabled=true
这里边的数据配置使用的是Sqlite,也可以使用mysql,sqlserver等配置具体参考:
https://loic-sharma.github.io/BaGet/configuration/
创建成功效果如下,可以看到刚刚创建的文件,以及写入文件里边的配置信息
在baget.env同目录创建一个baget-data 的文件夹
拉取baget镜像与启动容器
拉取baget最新的镜像
docker pull loicsharma/baget
启动docker容器
在刚刚创建的目录/var/baget中去执行命令
docker run --name nuget-server --restart=always -d -p 9092:80 --env-file baget.env -v "$(pwd)/baget-data:/var/baget" loicsharma/baget:latest
-d 后台运行
—name 容器名字为nuget-server
-p 映射端口到9092
-env-file 指定配置文件
-v指定挂载目录
启动成功即可访问,效果如下:
打包与上传
和上面的一样,把地址改成现在的,以及密钥也修改一下。密钥在上面创建的配置文件里边看。上传地址在刚刚那个页面里边可以看
切换到需要上传dll位置,执行命令:
dotnet nuget push *.nupkg -k AJ-Nuget-Packages-API-Key -s http://192.168.6.226:9092/v3/index.json
上传成功后久可以在页面上看到刚刚上传的包
怎么下载和上面的一样就不在累述了。贴一下使用mysql作为存储的配置
# 以下配置是用于发布包的API密钥,您应该将其更改ApiKey的值以保护服务器。
ApiKey= AJ-Nuget-Packages-API-Key
Storage__Type=FileSystem
Storage__Path=/var/baget/packages
Database__Type=Mysql
Database__ConnectionString=database=configcenter;data source=192.168.6.229;User Id=root;password=666666;port=3306
Search__Type=Database
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)