一、问题:
我们在.net 应用中生成Docker映像时,会出现ContainerBuildAndLaunch任务意外失败的问题。
查看输出窗口发现,是执行dotnet restore时,找不到包的问题,因为我的这些包是在自己的私有源上
二、解决方案:
在Dockerfile文件中,在执行dotnet restore前一行添加nuget私有源就行了,如下代码
RUN dotnet nuget add source https://***.cn/nuget -n My.nuget
注意:包源地址需要和项目引用包源地址一致,名称是否一致无所谓,不加用户名和密码也行
如下图所示:
三、问题原因:
1. 由于Dockerfile是在Docker里面执行的,所以Dockerfile里面的dotnet环境是容器环境,因此此时的dotnet restore 没有外部的包源,只有默认的nuget.org,所以出现找不到包的错误
2. 在Dockerfile文件里面执行RUN dotnet nuget list source即可验证这个问题
2. 我也尝试过复制Nuget.Config文件,但是太复杂,不建议。
四、后记:
1. 刚开始遇到这个问题的时候,也查了很多资料,根本没有相关的问题记录,所以我解决了以后马上就记在这里,供网友参考。
2. 如果您觉得有用或者解决了您的问题,请顶我加关注。
标签:restore,ContainerBuildAndLaunch,自定义,nuget,dotnet,问题,Docker,Dockerfile From: https://www.cnblogs.com/shoulisun/p/18042783