У меня есть ядро asp.net, решение webapi, которое использует пакет NuGet из частного репозитория, расположенного на сетевом диске общего доступа.
Что я сделал, так это добавил файл nuget.linux.config в проекткаталог со следующими строками:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<packageSources>
<add key="myrepo" value="/nuget/myrepo/" />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
</configuration>
Я попытался скопировать содержимое частного сервера nugetpackage в папку nuget / myrepo.Dockerfile выглядит следующим образом:
FROM microsoft/dotnet:2.1-runtime AS base
WORKDIR /app
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY projectfolder/NuGet.linux.config .
COPY projectfolder/project.csproj projectfolder/
VOLUME /nuget/myrepo/
COPY \\networkpath\to\the\nuget_packages_folder /nuget/myrepo/
RUN dotnet restore projectfolder/project.csproj
COPY . .
WORKDIR /src/projectfolder
RUN dotnet build project.csproj -c Release -o /app --no-restore
FROM build AS publish
RUN dotnet publish project.csproj -c Release -o /app --no-restore
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "project.dll"]
Но это не работает .. Как я могу создать образ контейнера проекта, который ссылается на пакет nuget в общей сети, используя проект docker-compose в vs2017?
Если проект построен в режиме отладки, нет необходимости добавлять файл nuget.config и не нужно изменять файл Docker с помощью
COPY \\networkpath\to\the\nuget_packages_folder /nuget/myrepo/
Проблема возникает тольков режиме разблокировки.