我有一个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"]
但这不起作用.. 如何在vs2017中使用docker-compose项目为共享网络中的nuget包创建引用的项目的容器映像?
如果项目是在调试模式下构建的,则不需要添加nuget.config文件,也不需要使用
修改dockerfile。COPY \\networkpath\to\the\nuget_packages_folder /nuget/myrepo/
问题仅在发布模式下出现。
答案 0 :(得分:0)
解决方案是将nugetpackage复制到项目的文件夹中,并在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>
这远不是一个好的解决方案,但我认为目前还没有其他选择。