如何在Linux Docker容器中从networking共享中恢复nuget包
我打算在Docker容器中构build.NET Core解决scheme,但无法使dotnet restore
命令正常工作。 我需要使用本地networking共享(只是一个简单的文件系统存储库)以及官方nuget回购。
我的nugetconfiguration如下所示:
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="Nuget Feed" value="https://api.nuget.org/v3/index.json" /> <add key="custom feed" value="//uvd-fs1.uvd.local/Install/UVPackages" /> </packageSources> </configuration>
我启动容器使用命令docker run -it --rm -v "$pwd\:/sln" microsoft/aspnetcore-build:latest
然后cd sln
和dotnet restore ./UVAudit.sln
。
这会产生以下错误:
/usr/share/dotnet/sdk/1.0.1/NuGet.targets(97,5): error : Failed to retrieve information about 'RavenDB.Client' from remote source '/uvd-fs1.uvd.local/Install/UVPackages'. [/sln/UVAudit.sln]
我希望RavenDB软件包可以从官方的feed中恢复,但是如果我从nuget.config文件中删除了自定义的软件包源,那么只有非官方的软件包不能被parsing。 这使我认为错误信息有点误导。 我也会认为/uvd-fs1.uvd.local/Install/UVPackages
部分实际上应该是//uvd-fs1.uvd.local/Install/UVPackages
,但是添加更多的斜线并不起作用。 任何想法,如果我做错了什么,或者这看起来像一个错误? 我不是Linux专家,所以我可能会错过一些基本的概念。
我也尝试更改存储库path到smb://uvd-fs1.uvd.local/Install/UVPackages
导致错误消息更改为:
/usr/share/dotnet/sdk/1.0.1/NuGet.targets(97,5): error : Failed to verify the root directory of local source 'smb://uvd-fs1.uvd.local/Install/UVPackages'. [/sln/UVAudit.sln] /usr/share/dotnet/sdk/1.0.1/NuGet.targets(97,5): error : smb://uvd-fs1.uvd.local/Install/UVPackages [/sln/UVAudit.sln]
我真的不知道这样做是否合理,只是Google提供的非常有限的线索之一。
UNCpath( \\..
)主要是一个Windows概念。 虽然networking和path的底层协议是smb,但NuGet客户端将不支持它 – 它在Windows上工作的原因是因为文件系统api透明地处理UNCpath。
如果你想从docker容器可靠地恢复,我build议设置一个NuGet饲料(有一个NuGet.Server nuget包为asp.net网站是足够的小内部饲料)。
- Docker和networking核心应用程序不起作用
- 针对完整框架的项目的asp.net核心2.0 docker镜像
- 如何在Mac上使用JetBrains Rider开发和debugging运行在Docker中的.NET Core应用程序
- 具有ASP.NET核心库的Docker容器
- Docker撰写 – 为networking名称添加标识符
- 如何将VS代码launch.json转换为Visual Studio launchSettings.json for .Net核心Web应用程序
- networking唤醒 – Linux – .Net核心
- VSCode在连接到Windows泊坞窗容器上的远程debugging器时挂起在断点上
- 如何将.net core web api部署到linux机器上