繁体   English   中英

docker build 中的 dotnet restore 不使用所有 nuget 源(忽略私有 github 源)

[英]dotnet restore in docker build not using all nuget sources (ignoring private github source)

我花了几个小时来锻炼,但我终于得到了我们的私人 github nuget 包 repo 来接受上传并允许我将这些包添加到本地项目(然后愉快地构建)。 我不得不弄乱 %AppData%\Roaming\NuGet\nuget.config 并在其中添加所需的凭据。

但是,我无法让 dockerfile 的 dotnet build 步骤识别出不止一个来源,它似乎只寻找 nuget.org

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" />
    <add key="[myCompany]" value="https://nuget.pkg.github.com/[myCompany]/index.json" />
  </packageSources>
  <packageRestore>
    <add key="enabled" value="True" />
    <add key="automatic" value="True" />
  </packageRestore>
  <bindingRedirects>
    <add key="skip" value="False" />
  </bindingRedirects>
  <packageManagement>
    <add key="format" value="0" />
    <add key="disabled" value="False" />
  </packageManagement>
  <packageSourceCredentials>
    <[myCompany]>
        <add key="Username" value="[myUserName]" />
        <add key="ClearTextPassword" value="[PAT Key]" />
      </[myCompany]>
  </packageSourceCredentials>
</configuration>

Docker文件:

FROM mcr.microsoft.com/dotnet/runtime:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["[myApp]/[myApp].csproj", "[myApp]/"]
RUN dotnet restore "[myApp]/[myApp].csproj"
COPY . .
WORKDIR "/src/[myApp]"
RUN dotnet build "[myApp].csproj" -c Release -o /app/build

:
:

构建的输出:

PS G:\[myCompany]\[myApp]> docker build -t [myApp] .
[+] Building 6.3s (12/18)
 => [internal] load build definition from Dockerfile                                                               0.0s
 => => transferring dockerfile: 32B                                                                                0.0s
 => [internal] load .dockerignore                                                                                  0.0s
 => => transferring context: 2B                                                                                    0.0s
 => [internal] load metadata for mcr.microsoft.com/dotnet/sdk:6.0                                                  0.4s
 => [internal] load metadata for mcr.microsoft.com/dotnet/runtime:6.0                                              0.3s
 => [build 1/7] FROM mcr.microsoft.com/dotnet/sdk:6.0@sha256:09c76ca233d3a413fd72bd0bc8c342ed12a8b55f1cc29ac455c0  0.0s
 => [internal] load build context                                                                                  0.1s
 => => transferring context: 37.90kB                                                                               0.0s
 => [base 1/2] FROM mcr.microsoft.com/dotnet/runtime:6.0@sha256:20c5363575c40c5a22993698d4f62291bfa564709c7677cbf  0.0s
 => CACHED [base 2/2] WORKDIR /app                                                                                 0.0s
 => CACHED [final 1/2] WORKDIR /app                                                                                0.0s
 => CACHED [build 2/7] WORKDIR /src                                                                                0.0s
 => CACHED [build 3/7] COPY [[myApp]/[myApp].csproj, [myApp]  0.0s
 => ERROR [build 4/7] RUN dotnet restore "[myApp]/[myApp].csproj"          5.8s
------
 > [build 4/7] RUN dotnet restore "[myApp]/[myApp].csproj":
#12 1.007   Determining projects to restore...
#12 5.536 /src/[myApp]/[myApp].csproj : error NU1101: Unable to find package [myNugetPackage]. No packages exist with this id in source(s): nuget.org
#12 5.636   Failed to restore /src/[myApp]/[myApp].csproj (in 4.46 sec).
------
executor failed running [/bin/sh -c dotnet restore "[myApp]/[myApp].csproj"]: exit code: 1
PS G:\[myCompany]\[myApp]>

我尝试将 nuget.config 添加到各种文件夹和解决方案/项目中 - 没有变化。

我还尝试使用 --configfile 参数将 nuget.config 的路径添加到 DockerFile - 不幸的是,“/src”被添加到它前面并且不起作用。

请帮忙?

在 Dockerfile 中执行 dotnet restore 时,nuget.config 文件尚未复制到映像中。 您只复制了 .csproj 文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM