DjB*_*ddy 5 nuget-package docker asp.net-core dotnet-restore
我是Docker的新手,我开发了一个简单的asp.net核心webapi解决方案,该解决方案使用来自私有存储库的NuGet软件包。
dotnet restore命令针对缺少的NuGet软件包返回错误,该软件包位于解决方案内部nuget.config文件中引入的私有存储库中。
有谁知道我的配置和dockerfile有什么问题吗?
Docker文件
FROM microsoft/aspnetcore-build:2.0 AS build-env
WORKDIR /app
# copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore
# copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
# build runtime image
FROM microsoft/aspnetcore:2.0
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "aspnetcoretssl.dll"]
Run Code Online (Sandbox Code Playgroud)
.dockerignore
bin\
obj\
Run Code Online (Sandbox Code Playgroud)
我在解决方案的根目录中也有一个nuget.config文件,如下所示
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="myrepo" value="\\path\to\the\nuget_packages_folder" />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
</packageSources>
</configuration>
Run Code Online (Sandbox Code Playgroud)
但是我收到以下消息
docker build -t aspnetcoretssl。
错误NU1101:无法找到软件包TestContracts。源中不存在具有此ID的软件包:nuget.org生成MSBuild文件/app/obj/aspnetcoretssl.csproj.nuget.g.props。
命令“ / bin / sh -c dotnet restore”返回非零代码:1
看起来有两个问题
NuGet.config 文件位于解决方案目录中,但 Dockerfile 位于项目文件夹中。这意味着COPY . ./
不会将 NuGet.config 复制到 Docker 容器中
即使您有 NuGet.config 文件,“myrepo”源也是 Docker 容器内的无效文件路径。
这是无效的,因为这是 Windows 网络文件路径,但您的容器在 Linux 上运行。
为了解决这个问题,我建议采取以下措施。
添加第二个名为 NuGet.linux.config 的文件,并在非 Windows 上构建时指向该文件。在 Linux 上构建时,使用 RestoreConfigFile 属性指向此文件。如果您已将 NuGet.config 移至项目目录中,则将这些行添加到您的aspnetcoretssl.csproj
文件中即可:
<PropertyGroup>
<RestoreConfigFile Condition="'$(OS)' != 'Windows_NT'">NuGet.linux.config</RestoreConfigFile>
<RestoreConfigFile Condition="'$(OS)' == 'Windows_NT'">NuGet.config</RestoreConfigFile>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)\\path\to\the\nuget_packages_folder
创建从到 的网络挂载Z:\
NuGet.linux.config
,将“myrepo”更改为 <add key="myrepo" value="/nuget/myrepo" />
--volume
通过 docker-run 上的参数完成的。docker run --volume Z:/:/nuget/myrepo
归档时间: |
|
查看次数: |
1537 次 |
最近记录: |