利用nuget离线缓存构建net core项目

最近,公司的网络策略有所调整,之前通过Jenkins自动构建的项目,都不能正常访问

https://nuget.cdn.azure.cn/v3/index.json地址,于是就有了此文章介绍的方法,利用nuget离线缓存进行项目的自动构建

nuget离线缓存

找一台可以连接外网的服务器,然后创建一个目录,这里我不创建,就利用nuget默认的缓存目录(~/.nuget/packages),当然也可以设置nuget缓存的目录为其他的目录,大家可以自行设置。

此时,可以在其他的目录创建一个控制台的项目,项目名字大家随便起,就是是为了能够方便下载nuget包(如果大家还有其他更好的方法,可以评论区讨论)

dotnet new console -o downloadnugetpackages

创建完了,之后,如果想要缓存那个nuget包,我们就可以通过:

dotnet add package Newtonsoft.Json --version13.0.1

这样我们就能看到~/.nuget/packages目录下已经有了Newtonsoft.Json包


设置目录共享

将~/.nuget/packages目录作为共享目录,这样其他的内网服务器就能通过挂载该共享目录进行文件的读取。

在linux中利用nfs进行文件的共享挂载,需要进行如下的操作:

1. 安装nfs包

sudo yum install nfs-utils

2. 创建共享目录,例如:

mkdir -p /data/sharedata

chmod -R a+r /data/sharedata//确保其他的用户有读取的权限

由于我这里的目录是:~/.nuget/packages,我只需要操作如下命令即可:

chmod -R a+r ~/.nuget/packages

3. 编辑配置文件

vi /etc/exports

输入:/root/.nuget/packages 192.168.20.11(rw,insecure) ,根据自己的情况填写,

/root/.nuget/packages:是被共享的目录,大家最好不使用root账户,这里只是作为展示,实际应用中不推荐

192.168.20.11:需要访问该共享目录的IP地址

rw:配置读写权限

4. 配置生效

exportfs-r

5. 启动服务

systemctlstart nfs

6. 设置开机启动

chkconfignfson或者 systemctl enable nfs

7. 查看共享文件夹是否存在

showmount-e

客户端挂载

1. 创建挂载目录:

mkdir -p /data/sharedata

2. 安装nfs

sudoyum install nfs-utils

3. 挂载

mount192.168.20.12:/root/.nuget/packages /data/sharedata

4. 设置开机自动挂载

vi/etc/fstab92.168.20.12:/root/.nuget/packages/data/sharedatanfsdefaults00mount-a//使配置生效

利用本地缓存构建项目

在客户端服务器上,已经有了nuget包的缓存,就可以在执行构建项目的时候指定缓存目录:

dotnetrestore--source /data/sharedatadotnetpublish--no-restore  ....

至此,问题得以解决,不用再担心nuget官网解析不了的问题。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容