通过Docker快速搭建NuGet私仓

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

通过Docker快速搭建NuGet私仓


通过Docker快速搭建NuGet私仓



前言

无论是Java还是.Net都有自己的包管理工具,在.Net世界里大家最常用的就是NuGet了,有人可能要问微软官方已经提供NuGet包管理平台,也非常好用,为啥一定要自己搭建一个私有的包管理仓库呢?当然了,凡是存在必然有其合理性,比如:很多大型公司严格限制公网环境;或者公司处于自我保护目的只允许在公司内部使用相关核心的程序;还有可能仅仅是因为程序员想方便自己开发。这些情况都迫使我们需要有个私有的包管理工具,来方便管理我们的工程项目的包的引用。

市面上有很多种工具都可以实现此功能,本文以BaGet为例通过Docker的方式快速搭建一个本地私有包管理器。操作如下:

环境搭建

1.初始化配置文件

首先找一个存放配置文件和包文件夹的路径。 举例存放路径为:D:\wsl\docker-volume\baget。在此路径下新增配置文件和文件夹:

  • 配置文件命名为:baget.env

  • 文件夹命名:baget-data

0.init.webp

baget.env文件中添加如下配置信息,其中ApiKey为秘钥(推送包时会用到),可以自己调整。

# The following config is the API Key used to publish packages.
# You should change this to a secret value to secure your server.
ApiKey=NUGET-SERVER-API-KEY

Storage__Type=FileSystem
Storage__Path=/var/baget/packages
Database__Type=Mysql
Database__ConnectionString=database=configcenter;data source=192.168.3.100;User Id=root;password=666666;port=3306
Search__Type=Database

2.Docker启动镜像

在此目录下打开PowerShell,运行命令如下:

docker run -d --name nuget-server -p 5555:80 --env-file baget.env -v "$(pwd)/baget-data:/var/baget"

该命令会做如下事情:

  • -d 后台运行

  • --name 容器名字为nuget-server

  • -p 映射端口到5555

  • -env-file 读取配置文件信息;

  • -v 映射卷文件到baget-data文件夹

3.验证是否成功

如访问地址http://localhost:5555后出现下图则说明搭建成功。

1.login.webp红色字体为仓库上传地址。2.upload.webp

生成自己的包文件

测试阶段随便找一个类库项目,右键点击打包。

3.package.webp

在bin目录下会生成包文件。

4.package-detail.webp

发布包文件到私仓

在包文件所在目录下执行如下命令,把包文件推送到私仓中:

dotnet nuget push -s http://localhost:5555/v3/index.json -k NUGET-SERVER-API-KEY AbpFreesqlnew.Domain.1.0.0.nupkg复制代码

如果配置文件中调整了ApiKey的秘钥值,则在命令中 需要同步替换NUGET-SERVER-API-KEY为自己的秘钥。 如图所示我设定秘钥为: 9876

5.upload-powershell.webp回到网页端可以查询到上传成功的包文件。

6.upload-success.webp

添加私仓地址

打开NuGet包管理器(工具-NuGet包管理器-管理解决方案的NuGet的程序包),在设置页面中添加私仓地址:http://localhost:5555/v3/index.json

nuget-setting.webp

add-new-nuget.webp此时已经可以查询到我们上传的包文件,可以在项目中直接使用。

display-localnuget.webp

延伸

通过以上步骤我们很快就搭建好了私有NuGet仓库,下次再使用时在Docker中直接启动容器即可。前文提到有很多工具都可以实现私仓的搭建,选则时可以按自己所需选择,如果想同时管理Java、.Net、Npm 建议选择Nexus,可以同时满足很多场景,有兴趣的小伙伴可以试着搭一次。


通过Docker快速搭建NuGet私仓

通过Docker快速搭建NuGet私仓前言无论是Java还是.Net都有自己的包管理工具,在.Net世界里大家最常用的就是NuGet了,有人可能要问微软官方已...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息