Как создать контейнер с docker-compose, если проект зависит от частного пакета nuget на сетевом диске общего доступа? - PullRequest
0 голосов
/ 25 марта 2019

У меня есть ядро ​​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/

Проблема возникает тольков режиме разблокировки.

1 Ответ

0 голосов
/ 26 марта 2019

Решением было скопировать пакет nuget в папку в проекте и добавить следующее в dockerfile:

VOLUME /nuget/myrepo/
COPY projectfolder/NugetPackage/ /nuget/myrepo/

, а файл nuget.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>

Это далеко не хорошее решение, но я не думаю, что есть другой вариант на данный момент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...