Docker Compose构建中的Nuget包还原错误

问题描述 投票:3回答:3

我在使用docker-compose在代理后面构建时遇到了nugget restore错误。我在docker for windows中设置了代理。 Nuget恢复适用于命令行dotnet restore和visual studio调试,但不使用docker-compose

:\Program Files\dotnet\sdk\2.1.104\NuGet.targets(104,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [C:\src\WebApp.sln]
:\Program Files\dotnet\sdk\2.1.104\NuGet.targets(104,5): error :   An error occurred while sending the request. [C:\src\WebApp.sln]
:\Program Files\dotnet\sdk\2.1.104\NuGet.targets(104,5): error :   A connection with the server could not be established [C:\src\WebApp.sln]
ERROR: Service 'idenityapi' failed to build: The command 'powershell -Command $ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue'; dotnet restore -nowarn:msb3202,nu1503' r
turned a non-zero code: 1
docker nuget docker-compose dockerfile nuget-package-restore
3个回答
3
投票

解决了: 事实证明这是一个网络问题。我在工作中使用公司防火墙,利用TLS数据包检查来分解SSL流量。调试时的构建过程在我的本地机器上以“我”运行,但是,发布版本(docker-compose)实际上是下载了一个aspnetcore-build docker镜像,将代码复制到docker容器,然后运行dotnet restore以获得新鲜您的docker图像的nuget包。可以在项目的Docker文件中找到这些操作。容器内的“dotnet restore”在不同的安全环境下运行,因此被挂起。由于docker网络的工作原理,我们追踪了网络流量,这对我来说很难实现。提琴手没有赶上交通。使用wireshark,我们能够从设备级别捕获它并看到丢弃。它继续从我的家庭网络失败的原因是由于我们的管理程序和网络的配置。

决议: 为https://api.nuget.org/v3/index.json添加防火墙规则(首选)或从云中的VSTS构建映像或从其他网络构建。

如果你能以同样的方式解决这个问题,请回复PS4吗?花了3天时间,我对你的状态感到好奇。


3
投票

当我遇到dotnet restore这个问题时添加公司证书文件解决了这个问题。 (在你的情况下是否可能不一样?)。在RUN dotnet restore之前,我加入了集装箱的证书店,即

ADD your-proxy-certificate-file.crt /usr/local/share/ca-certificates/your-proxy-certificate-file.crt
RUN update-ca-certificates

理论上,如果dotnet restore在您的本地计算机上运行,​​则没有理由您不能将容器配置为工作(没有防火墙规则或更改网络!)。您基本上需要使用与本地计算机相同的设置将容器配置为在代理后面工作。


0
投票

我现在也得到同样的错误。我已经工作了2天无济于事。我已经确定它似乎不是一个与网络相关的问题。我可以在我的家用笔记本电脑上加载相同的项目并构建它。我把我的工作笔记本电脑带回家,它没有建立。这指向我的工作笔记本电脑有amis。

我有小提琴打开,它永远不会尝试打网址。在这一点上,我对这些想法缺乏想法。

我尝试从一个简单的API /网站创建另一个“模板”项目...它构建良好...我添加Nuget包,它突然失败。

我的错误信息与PS4完全相同。

重现这一点的步骤很简单。 1)创建一个新的.NET Core Web项目2)启用Docker支持(通过新项目向导或添加上下文菜单)3)选择Release Mode 4)点击Play / Debug / Go按钮。

PS4和我都有一点共同点就是我们俩都有“dotnet sdk 2.1.104”

© www.soinside.com 2019 - 2024. All rights reserved.