构建 docker 映像时出现问题,运行 dotnet restore:VS2019 中的“No such host is known”,Windows
Posted
技术标签:
【中文标题】构建 docker 映像时出现问题,运行 dotnet restore:VS2019 中的“No such host is known”,Windows【英文标题】:Problem with buildning docker image, RUN dotnet restore : "No such host is known" in VS2019, Windows 【发布时间】:2021-01-10 23:41:20 【问题描述】:我尝试在 Visual Studio 2019 中运行“构建 Docker 映像”,但在还原步骤中失败。
这是 DockerFile:
FROM mcr.microsoft.com/dotnet/core/runtime:3.1-nanoserver-1903 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-nanoserver-1903 AS build
WORKDIR /src
COPY ["OwnProject/OwnProject.csproj", "OwnProject/"]
RUN dotnet restore "OwnProject/OwnProject.csproj"
COPY . .
WORKDIR "/src/OwnProject"
RUN dotnet build "OwnProject.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "OwnProject.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "OwnProject.dll"]
这是构建映像时的错误消息:
1>C:\Program Files\dotnet\sdk\3.1.402\NuGet.targets(128,5): error : No such host is known. [C:\src\OwnProject\OwnProject.csproj]
1>C:\Program Files\dotnet\sdk\3.1.402\NuGet.targets(128,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [C:\src\OwnProject\OwnProject.csproj]
这可能是什么原因?跟DNS有关吗?
如果我跑 docker run -it --dns=8.8.8.8 mcr.microsoft.com/dotnet/core/runtime:3.1-nanoserver-1903 在 powershell 中,我可以 ping google.com,但如果我排除“--dns”,我只能 ping 它。 这可能是恢复失败的原因,解决问题的地址吗? 如果是这样,我该如何解决?是否可以在 DockerFile 中设置 DNS-server?
我查看了一些 nuget 配置文件,例如在用户级别 (用户\AD 名称\AppData\Roaming\NuGet\NuGet.Config):
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
</configuration>
...在我看来这很好? 我还尝试禁用网络适配器,更改 interfacemetric 以优先考虑适配器,将 .net core sdk 升级到 3.1.402,但似乎没有任何效果......
任何想法/建议都会有所帮助。
【问题讨论】:
你有没有看过这个问题:***.com/questions/57791748/…? 【参考方案1】:您必须为 docker 设置默认网络适配器 由于 Docker 使用最低的 InterfaceAlias 适配器 您可以查看此网址了解更多详情https://improveandrepeat.com/2019/09/how-to-fix-network-errors-with-docker-and-windows-containers/
PowerShell Get-NetIPInterface -AddressFamily IPv4 | Sort-Object -Property InterfaceMetric -Descending
这应该会给你一个像这样的输出: Net IP Interface list 最低连接器已断开
我的接口“以太网”已断开连接,因此导致了我的网络问题。为了解决这个问题,我将我的“以太网”接口移动到使用以下命令连接的第一个接口后面:
PowerShell Set-NetIPInterface -InterfaceAlias 'Ethernet' -InterfaceMetric 4
【讨论】:
以上是关于构建 docker 映像时出现问题,运行 dotnet restore:VS2019 中的“No such host is known”,Windows的主要内容,如果未能解决你的问题,请参考以下文章
应用程序构建成功但出现错误:运行映像时出现“没有主清单属性,在 app.jar 中”
设置 QEMU 时出现 Github 操作错误 - 错误:无法找到可执行文件:docker
重新创建和扩展 centos6-i386 Docker 基础映像时出现“cp: Command not found”