【发布时间】:2018-07-27 01:56:02
【问题描述】:
我正在尝试在容器技术上启动我的 .net 核心 Web api。使用 docker。
环境=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 Container。我在 Visual Studio 17 上有 .net 核心项目。当我添加 docker 支持并从 VS 17 运行时,一切正常。 API在容器内站立。但是当我关闭VS时不起作用。但是,当我尝试自定义我的 dockerfile 以使我的图像和容器独立于 VS 时。由于私有.dll,它会给出错误。
在我的项目中,我有一个来自我的私人 nuget 服务器的 .dll。当我在没有我的私人.dll 的情况下尝试时,我可以创建图像。但我需要.dll。 Docker 给我这个错误:
MailAlertWebApiWithEF.csproj:错误 NU1101:无法找到包 WebApi.Utils。源中不存在具有此 ID 的软件包: nuget.org
我搜索了这个错误。问题的根源似乎是 Nuget.Config 文件。但这对我来说似乎很好,因为我可以在那里看到我的私人 nuget 服务器。当我总是在 linux 机器上搜索解决方案箭头但我使用 windows。
1-)因此,如果我可以使用 VS 17 启动我的项目,那么我的 nuget.config 文件格式正确。它可以看到我的私人 nuget 服务器。正确的?那为什么 docker 看不到呢?
请帮忙
【问题讨论】:
-
我找到了问题但没有解决。 “Dotnet Restore”命令不安装我的私人包之一,而是从我的私人服务器安装其他包。
-
Dotnet Restore' command don't install one of my private package那个包是 .NET Framework 库吗?如果是,命令行 dotnet restore 无法解析 .NET Framework 库,可以尝试使用nuget restore。 github.com/dotnet/cli/issues/3199 -
都是 .net 标准库和兼容 .net 核心。
标签: c# visual-studio docker nuget