小编典典

Dockerfile无法看到本地文件或私有nuget服务器

docker

我正在尝试启动有关容器技术的.net核心Web api。使用泊坞窗。

环境= Windows 10,Visual Studio

Docker版本:

客户:

版本:17.12.0-ce

API版本:1.35

Go版本:go1.9.2

Git提交:c97c6d6

建成:2017年12月27日星期三20:05:22

操作系统/ Arch:Windows / amd64

服务器:

发动机:

版本:17.12.0-ce

API版本:1.35(最低版本1.12)

Go版本:go1.9.2

Git提交:c97c6d6

建成:2017年12月27日星期三20:12:29

操作系统/ Arch:linux / amd64

实验性:真实

我的Nuget.Config文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>


<add key="nuget.org" value="https://api.nuget.org/v3/index.json" 
protocolVersion="3" />


<add key="Private" 
value="http://My_Private_Nuget_Server" />


</packageSources>
<packageRestore>
<add key="enabled" value="True" />
<add key="automatic" value="True" />
</packageRestore>
<bindingRedirects>
<add key="skip" value="False" />
</bindingRedirects>
<packageManagement>
<add key="format" value="0" />
<add key="disabled" value="True" />
</packageManagement>


<apikeys>
<add key="https://www.nuget.org" value="Some_Long_Value" />
</apikeys>


<disabledPackageSources />
</configuration>

我的Dockerfile:

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", "MailAlertWebApiWithEF.dll"]

我在Windows 10计算机上使用Linux容器。我在Visual Studio 17上有.net核心项目。当ı添加docker支持并从VS
17运行时,一切正常。API站立在容器中。但是当我关闭VS时不起作用。但是当我尝试自定义我的dockerfile以使我的图像和容器独立于VS时。由于私有导致错误.dll

在我的项目中,我有一个。dll
从我的私有nuget服务器。当没有我的私人ı尝试时,.dll可以创建图像。但是我需要那个.dll。Docker给我这个错误:

MailAlertWebApiWithEF.csproj:错误NU1101:无法找到软件包WebApi.Utils。在源中不存在具有此id的软件包:nuget.org

我搜索了此错误。问题的源似乎是Nuget.Config文件。但是对我来说似乎很好,因为我可以在那里看到我的私有nuget服务器。当我在Linux机器上搜索解决方案箭头时,总是使用Windows。

1-)所以如果我可以从VS
17开始我的项目,那么我的nuget.config文件格式正确。它可以看到我的私有nuget服务器。对?那为什么码头工人看不到它呢?

请帮忙


阅读 403

收藏
2020-06-17

共1个答案

小编典典

为了使dotnet在容器中运行的命令能够找到您的自定义供稿,nuget.config还必须将文件复制到容器中。

为此,将nuget.config带有私人提要的文件添加到项目文件夹,并添加COPY将此文件复制到容器的其他步骤。

示例(Dockerfile):

WORKDIR ...
COPY NuGet.Config /
COPY ... ...
2020-06-17