Dockerfile can't see local file or private nuget server
In order for a dotnet
command running inside a container to find your custom feeds, the nuget.config
file must also be copied to the container.
To do this, add a nuget.config
file with your private feed to your project folder and add an additional COPY
step that copies this file to the container.
Example (Dockerfile):
WORKDIR ...
COPY NuGet.Config /
COPY ... ...
for those who have landed here as they were using private repositories or custom nuget feeds and RUN dotnet restore is failing ,then here is what you can do :
Applicable especially if : your NuGet.Config contains the private repo endpoint and credentials , then
1) copy your system's NuGet.Config in project folder at same root level where .csproject is.
2) now in docker file put these statements just before you try to restore package:
COPY ./NuGet.Config ./
3) after that , append the config file location in dotnet restore command like this :
RUN dotnet restore <CS_project_name>.csproj --configfile ./NuGet.Config
4) Now do rest of the thing which you wanted to do .
5) just at the end before entry point or before copying to other container(in case of multistage build) , it is good idea to remove NuGet.Config,as we don’t want that to be available in pod/container to be seen
RUN rm ./NuGet.Config
You can add the private nuget through dotnet command, without the need to link to nuget.config file.
COPY *.csproj ./
RUN dotnet nuget add source <source-value-of-nuget> -n <name>
RUN dotnet restore