gpt4 book ai didi

docker - 在 docker 容器中进行 dotnet 还原期间出现错误

转载 作者:行者123 更新时间:2023-12-02 18:35:20 25 4
gpt4 key购买 nike

我正在尝试运行 .NET Core dockerfile,但不断收到 dotnet restore 错误。我在 Linux 容器中运行它。我尝试在 Windows 容器中运行它,但在 COPY 命令期间出现错误。

我有一个 docker compose 文件,它从子文件夹加载 .NET Core dockerfile。我在 Powershell 中运行“docker-compose up”。构建过程进入 dotnet restore 步骤并引发此错误:

/usr/share/dotnet/sdk/3.1.100/NuGet.targets(123,5): error : Unable to load the service index for source http://192.168.30.2:8080/tfs/DefaultCollection/_packaging/api-library/nuget/v3/index.json. [/Portal.API/Portal.Api.csproj]
/usr/share/dotnet/sdk/3.1.100/NuGet.targets(123,5): error : GSSAPI operation failed with error - Unspecified GSS failure. Minor code may provide more information (SPNEGO cannot find mechanisms to negotiate). [/Portal.API/Portal.Api.csproj]

我尝试根据 Stackoverflow 帖子更新 Visual Studio 中的 devenv.exe.config 文件: https://stackoverflow.com/a/47837720/2026659

更新 devenv.exe.config 后,我得到了这个略有不同的错误(还包括整个构建输出):
    Step 1/9 : FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS api-env
---> cef7866e800b
Step 2/9 : WORKDIR /Portal.API
---> Using cache
---> 80eea76dc2a0
Step 3/9 : COPY ./Portal.API/Portal.Api.csproj .
---> Using cache
---> 0739924c5ebf
Step 4/9 : COPY ./Portal.API/NuGet.config .
---> f1a514456db0
Step 5/9 : RUN dotnet restore
---> Running in 9d4a8f5d6239
Restore completed in 8.15 sec for /Portal.API/Portal.Api.csproj.
/usr/share/dotnet/sdk/3.1.100/NuGet.targets(123,5): error : Unable to load the service index for source http://192.168.30.2:8080/tfs/DefaultCollection/_packaging/api-library/nuget/v3/index.json. [/Portal.API/Portal.Api.csproj]
/usr/share/dotnet/sdk/3.1.100/NuGet.targets(123,5): error : Connection refused [/Portal.API/Portal.Api.csproj]
ERROR: Service 'portal.api' failed to build: The command '/bin/sh -c dotnet restore' returned a non-zero code: 1

更新:我的一些 NuGet 包托管在我通过 VPN 访问的本地网络上的专用服务器上。我使用 Windows Active Directory 登录到我的工作笔记本电脑,我认为这些凭据用于访问私有(private)服务器。

更新 2:我在 NuGet.config 中添加了登录凭据,如下所示:
...
<packageSourceCredentials>
<api-library>
<add key="Username" value="username" />
<add key="ClearTextPassword" value="password" />
</api-library>
</packageSourceCredentials>
</configuration>

现在,在 docker 容器中运行 dotnet restore 时出现不同的错误:
/usr/share/dotnet/sdk/3.1.100/NuGet.targets(123,5): error : Unable to load the service index for source http://192.168.30.2:8080/tfs/DefaultCollection/_packaging/api-library/nuget/v3/index.json. [/Portal.API/Portal.Api.csproj]
/usr/share/dotnet/sdk/3.1.100/NuGet.targets(123,5): error : GSSAPI operation failed with error - An invalid name was supplied (Configuration file does not specify default realm).

在做更多的谷歌搜索之后,我想我需要以不同的方式传递登录凭据,可能使用个人访问 token ,就像在这个 GitHub 帖子中一样: https://github.com/microsoft/artifacts-credprovider/issues/63

我不知道该怎么做。

最佳答案

有很多问题。刚刚发现,dotnet restore 正在尝试使用 NTML,您需要强制它使用基本身份验证才能使 PAT 在 linux 上运行。基于这篇文章https://developercommunity.visualstudio.com/t/azure-artifacts-nuget-feed-gives-error-during-rest/711941
在你需要添加

  <add key="ValidAuthenticationTypes" value="basic" />
前任:
<packageSourceCredentials>
<api-library>
<add key="Username" value="username" />
<add key="ClearTextPassword" value="password" />
<add key="ValidAuthenticationTypes" value="basic" />
</api-library>
</packageSourceCredentials>
</configuration>

关于docker - 在 docker 容器中进行 dotnet 还原期间出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59585950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com