02-09 docker搭建NuGet私有仓库,并上传和使用nuget包(linux容器)

1 篇文章 0 订阅
1 篇文章 0 订阅
一、安装nexus容器
1、上docker hub搜索合适的nexus版本在这里插入图片描述
2、拉取镜像
docker pull sonatype/nexus3

在这里插入图片描述

3、启动容器并挂载本地磁盘(我的宿主机是windows,所以挂载的是windows磁盘)
docker run -d -p 8081:8081 --name nexus -v D:/workspace/docker/docker/nexus:/nexus-data sonatype/nexus3

语法说明

docker run -d -p [宿主机端口]:[容器端口] --name [容器名称] -v [宿主机映射路径]:[容器被映射路径] [镜像名称/id]

在这里插入图片描述
可以设置为自启动(可选)

docker update --restart=always nexus
4、访问Nexus,打开浏览器,输入http://localhost:8081http://宿主机ip:8081

在这里插入图片描述
登录的默认用户是admin,密码在容器中的/nexus-data/admin.password文件中,将admin.password拷贝到本地docker cp nexus:/nexus-data/admin.password D:/workspace/docker/nexus,打开就可以看到密码了。(注意,停止容器docker stop nexus之后才能拷贝)
在这里插入图片描述
登陆成功后提示修改密码,然后点击浏览可以查看内置仓库
在这里插入图片描述

仓库说明(引用)

其实Nexus默认已经创建好了Nuget的仓库,并且是创建了3个不同类型的仓库:nuget-group,nuget-hosted,nuget.org-proxy。
(1) nuget.org-proxy
类型是proxy,表示代理仓库。我们向它请求包(package)的时候,如果本地有,它就从本地提供,如果本地没有,它会从nuget.org下载到本地,然后给我提供这个包。
(2)nuget-hosted
类型是hosted,表示托管仓库。我们一般把自己开发的包上传到该仓库中。
(3)nuget-group
类型是group,表示仓库组,它结合了nuget.org-proxy和nuget-hosted,能对外提供上述两者中的包。
简而言之,nuget-hosted负责包上传,nuget.org-proxy负责代理包,nuget-group负责提供包。

二、配置Nuget仓库并上传package
1、下载NuGet

在这里插入图片描述

将下载的exe文件放到指定的文件夹中,然后配置环境变量(比如我放在D:\application\Nuget路径下,那么我就将D:\application\Nuget添加到系统环境变量中)在这里插入图片描述
测试是否成功,打开cmd,输入nuget,回车如下图则成功。
在这里插入图片描述

2、 添加Nuget Realms

因为Nexus认证Nuget是通过Realms来认证,因此,要添加Nuget Realms。
在这里插入图片描述

3、使用vs创建一个类库,编写代码,设置打包属性

在这里插入图片描述
生成之后就会在项目bin目录下生成nuget包
在这里插入图片描述

4、上传包方式
(1)命令上传

指令为nuget push [nuget package fullname] [apiKey] -source [http://customsource/]

  • 从Nexus上获取api key,两种任意都可以
    在这里插入图片描述
    在这里插入图片描述
  • 上传package
    第一种:在生成的xxxx.1.0.0.nupkg目录下右键打开powershell,输入以下指令
nuget push TestLibrary.1.0.0.nupkg deeda1dc-00cc-37ca-a199-29a9a3455we4 -source http://localhost:8081/repository/nuget-hosted/

说明

  • TestLibrary.1.0.0.nupkg:包名(自定义,一般跟类库名称相同)
  • deeda1dc-00cc-37ca-a199-29a9a3455we4:从Nexus上获取的api key
  • http://localhost:8081/repository/nuget-hosted/:仓库地址,ip根据自己Nexus地址替换,nuget-hosted是托管仓库(你只需要更换IP就行)

第二种:直接打开cmd,输入以下指令

nuget push D:\desktop\TestLibrary\TestLibrary\bin\Debug\TestLibrary.1.0.0.nupkg deeda1dc-00cc-37ca-a199-29a9a3455we4 -source http://localhost:8081/repository/nuget-hosted/

说明D:\desktop\TestLibrary\TestLibrary\bin\Debug\TestLibrary.1.0.0.nupkg:是生成的nuget包的全路径;其他参数不变。

(2)vs直接发布nuget包

<1> 打开vs2019,工具–>外部工具–>添加,如下图

  • 标题:发布NuGet
  • 命令:选择cmd.exe,路径为C:\Windows\System32\cmd.exe
  • 参数:/c del /q *.nupkg && nuget pack && nuget push *.nupkg [仓库apikey] -source [仓库url]
  • 初始目录:$(ProjectDir)
    在这里插入图片描述
    <2> 添加到项目右键菜单上,工具–>自定义–>命令–>上下文菜单–>项目和解决方案上下文菜单|项目–>添加命令–>左侧选择工具–>右侧选择命令3(因为在步骤<1>中添加的自定义命令是第三个,读者请根据实际情况调整)–>确定
    在这里插入图片描述
    添加成功之后,可以选中刚才添加的命令,上下移动到合适的位置,并修改名称
    在这里插入图片描述
    在这里插入图片描述
    在类库上右键就可以看到上图添加的命令,单击即可将本地的nuget包发布私库
    在这里插入图片描述
三、使用Nexus仓库中的nuget包
1、创建一个控制台项目

在这里插入图片描述

2、配置nuget程序包源:工具-->NuGet包管理器-->程序包管理设置,打开下图窗口(2,3截不到)

注意:仓库是nuget-group,不是nuget-hosted,原因向上查看仓库说明
在这里插入图片描述

3、搜索安装package

注意:把包源切换成“全部”,或者上一步添加的包源,才能找到私有仓库的包
在这里插入图片描述
在这里插入图片描述
安装好之后测试调用,代码如下(我这是donet core项目)
在这里插入图片描述
启动程序,运行结果如下则说明引用成功
在这里插入图片描述

参考文档

使用Nexus搭建私有Nuget仓库

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值