【问题标题】:dotnet restore works locally but fails when building Docker containerdotnet restore 在本地工作,但在构建 Docker 容器时失败
【发布时间】:2018-03-08 04:49:00
【问题描述】:

如果我使用dotnet classlib -lang f# -o hello-dockercd 在目录中创建一个新的控制台应用程序,然后运行dotnet restore,一切都会按预期工作。

但是,如果我添加具有以下内容的Dockerfile

FROM microsoft/dotnet:2-sdk

WORKDIR /hello

COPY hello-docker.fsproj .
COPY *.fs ./

RUN dotnet restore

RUN dotnet build

ENTRYPOINT [ "dotnet", "run" ]

并运行docker build .,它无法到达nuget.org,并显示以下消息:

/usr/share/dotnet/sdk/2.0.0/NuGet.targets(102,5):错误:无法加载源 https://api.nuget.org/v3/index.json 的服务索引。 [/hello/hello-docker.fsproj]
/usr/share/dotnet/sdk/2.0.0/NuGet.targets(102,5): error : 发送请求时出错。 [/hello/hello-docker.fsproj]
/usr/share/dotnet/sdk/2.0.0/NuGet.targets(102,5):错误:无法解析主机名 [/hello/hello-docker.fsproj]
命令“/bin/sh -c dotnet restore”返回非零代码:1

为什么我可以在本地恢复,但不能在 Docker 容器内恢复?

【问题讨论】:

  • 您使用的是哪个操作系统?
  • @tarunlalwani Windows 10。
  • 我认为由于某种原因互联网无法在您的 Docker 容器中运行。尝试从设置中重新启动 docker VM
  • 老实说不确定,尝试摆脱 docker 并重新安装它,看看它是否有任何帮助
  • 是的,重新安装 docker 就可以了。很奇怪,但我想某处有一些防火墙规则使它失效。谢谢!

标签: docker .net-core windows-10


【解决方案1】:

我通过进入我的网络适配器上的属性/共享来修复它,并与 hyper-v/docker 开关共享它......认为它被称为 nat 或其他东西。

【讨论】:

  • 你能详细说明你遵循的步骤
  • 对于我来说(在 Windows 10 上),我右键单击右下角的 wifi 图标,单击“打开网络和 Internet 设置”,然后单击“更改适配器选项”,然后右键单击当前适配器 I用于互联网(在我的情况下为wifi),单击属性,转到共享选项卡,单击“允许其他网络用户通过这台计算机的互联网连接进行连接”,然后从下拉列表中我选择了vEthernet(DockerNAT)或任何与您的机器等效的东西
猜你喜欢
  • 2017-11-19
  • 1970-01-01
  • 1970-01-01
  • 2021-07-25
  • 1970-01-01
  • 2018-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多