Docker和ASP.NET Core 2.1预览1

时间:2018-03-12 11:53:38

标签: docker asp.net-core asp.net-core-2.1

我已经从here安装了ASP.NET Core 2.1预览版1和Visual Studio的最新预览版。

然后我按照以下步骤操作:文件>新项目> ASP.NET核心Web应用程序>选择API,选中Enable Docker Support (Os: Linux)No Authentication

这很好地生成了项目模板,以及带有docker撰写文件的Docker项目。这样可以很好地构建,并提取所有需要的图像。但是,当我尝试使用Docker从Visual Studio中运行它时,它似乎无法工作。

在日志中,我看到以下内容:

  

内容根路径:/ app
  现在听取:http://[::]:80
  ...
  请求启动HTTP / 1.1 GET http://localhost:32778/   Microsoft.AspNetCore.Hosting.Internal.WebHost:信息:请求启动HTTP / 1.1 GET http://localhost:32778/

现在,当我尝试对http://localhost:32778/api/values进行GET(使用Postman)时,没有看到任何反应:

  

无法得到任何回复   连接到http://localhost:32778/api/values时出错。

BUT! Docker日志显示正在进行请求:

  

Microsoft.AspNetCore.Hosting.Internal.WebHost:信息:请求启动HTTP / 1.1 GET http://localhost:32778/api/values
  [40m [32minfo [39m [22m [49m:Microsoft.AspNetCore.Hosting.Internal.WebHost [1]   请求启动HTTP / 1.1 GET http://localhost:32778/api/values
  [40m [32minfo [39m [22m [49m:Microsoft.AspNetCore.Hosting.Internal.WebHost [2]   要求在14.4873ms 307完成   Microsoft.AspNetCore.Hosting.Internal.WebHost:信息:请求在14.4873ms 307完成

我在这里缺少什么?如果我使用IIS Express运行默认项目,一切都按预期工作。

编辑:我刚刚在ASP.NET Core 2.0上对此进行了测试,一切正常。

2 个答案:

答案 0 :(得分:7)

正如@andrewbadera指出的那样,存储库发生了变化:

SDK

旧:microsoft/aspnetcore-build:2.0

新:microsoft/dotnet:2.1-sdk

ASP NET

旧:microsoft/aspnetcore:2.0

新:microsoft/dotnet:2.1-aspnetcore-runtime

我不知道为什么visual studio的模板已经没有使用它了,但很快他们就可能会解决这个问题了。

Visual Studio模板正在生成:

SDK => microsoft/aspnetcore:2.1

ASP NET => microsoft/aspnetcore-build:2.1

答案 1 :(得分:1)

我也在使用Docker上的netcoreapp2.1。您确定已成功拉下泊坞窗图像吗?因为当我创建一个新项目时,创建的Dockerfile具有:

FROM microsoft/aspnetcore:2.1 AS base
//...
//...
FROM microsoft/aspnetcore-build:2.1 AS build

从我在microsoft docker repo中看到的内容,这些图片只是不存在(!)。

VS中的输出显示:

========== Pulling Images ==========
Pulling missing Docker images. To cancel this download, close the command prompt window. To disable image auto-pull, see Tools > Options > Container Tools.
docker pull microsoft/aspnetcore:2.1
docker pull failed

我找到的最近的图片是:

microsoft/aspnetcore:2.1.0-preview1
microsoft/aspnetcore-build:2.1.300-preview1

并且应用程序正常工作,但还有另一个问题:在VS中调试时,调试器没有点击任何断点(因为PDB符号未加载,我不会知道为什么会这样。)

我刚刚描述的所有内容都适用于创建新的ASP.NET Core 2.0 项目。