我正在使用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来说是全新的。
答案 0 :(得分:5)
我在您的错误中看到Web.xproj
,看起来您遇到与this github issue中描述的问题相同的问题。这种问题的根源是Microsoft将其docker更新为最新的SDK,后者从.csproj
移回project.json
。解决方案是使用另一个1.1-sdk-projectjson
标记:
FROM microsoft/dotnet:1.1-sdk-projectjson
关于microsoft/dotnet/泊坞窗页面的说明:
latest
标记不再使用project.json项目格式,但现在已更新为基于csproj / MSBuild的标记。如果您不希望将现有项目迁移到MSBuild,只需将Dockerfile更改为使用1.1.0-sdk-projectjson
或1.1.0-sdk-projectjson-nanoserver
标记。展望未来,新的.NET Core sdk图像将基于MSBuild。