将 .net 核心应用部署到 docker 会"Microsoft.DotNet.Props"出现"未找到"错误



我使用的是Windows 10 Home操作系统。我已经安装了Docker工具箱。我想将我的 .net 核心应用程序部署到 Docker。我通过参考以下有用的文章创建了我的 Docker 文件:https://stormpath.com/blog/tutorial-deploy-asp-net-core-on-linux-with-docker

我的码头工人文件如下:

FROM microsoft/dotnet:latest
COPY . /app
WORKDIR /app
RUN ["dotnet", "restore"]
RUN ["dotnet", "build"]
EXPOSE 5000/tcp
ENV ASPNETCORE_URLS http://*:5000
ENTRYPOINT ["dotnet", "run"]

但是当我运行用于创建映像的 docker 命令时,它给了我错误。

user@machine_name MINGW64 path to solution
$  docker build -t helloWorld:core .

错误:

/app/Web.xproj(7,3): error MSB4019: The imported project "/usr/share/dotnet/sdk/1.0.0-rc4-004771/Microsoft/VisualStudio/v14.0/DotNet/Microsoft.DotNet.Props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
The command 'dotnet restore' returned a non-zero code: 1

有人可以指导一下,这里出了什么问题,因为我是 Docker 的新手。

正如我在错误中看到Web.xproj的那样,看起来您遇到了与此 github 问题中所述相同的问题。此类问题的根源是Microsoft将他们的 docker 更新到最新的 SDK,该 SDK 从 project.json 移回 .csproj .解决方案是使用另一个1.1-sdk-projectjson标签:

FROM microsoft/dotnet:1.1-sdk-projectjson

在 microsoft/dotnet/docker 页面上的说明:

latest 标记不再使用 project.json 项目格式,但现在已更新为基于 csproj/MSBuild。如果您不希望将现有项目迁移到 MSBuild,只需将 Dockerfile 更改为使用 1.1.0-sdk-projectjson1.1.0-sdk-projectjson-nanoserver 标记即可。展望未来,新的.NET Core sdk映像将基于MSBuild。

最新更新