Sql server 使用asp.net Core、SQL Server和Docker进行EF Core迁移会产生dotnet SDK错误

Sql server 使用asp.net Core、SQL Server和Docker进行EF Core迁移会产生dotnet SDK错误,sql-server,docker,asp.net-core,entity-framework-core,Sql Server,Docker,Asp.net Core,Entity Framework Core,我正在使用Docker for Windows版本1.13.0-rc5-beta35(9606) Windows10Pro Visual Studio代码 我使用yeoman生成器与Docker创建了一个ASP.NET核心项目: yo aspnet yo docker 当我试图让API从Docker容器连接到本地运行的SQL Server实例时,遇到了问题 为了解决这个问题,我创建了一个在自己的容器中运行的SQL Server实例(使用microsoft/mssql Server linux

我正在使用Docker for Windows版本1.13.0-rc5-beta35(9606)

Windows10Pro

Visual Studio代码


我使用yeoman生成器与Docker创建了一个ASP.NET核心项目:

yo aspnet
yo docker
当我试图让API从Docker容器连接到本地运行的SQL Server实例时,遇到了问题

为了解决这个问题,我创建了一个在自己的容器中运行的SQL Server实例(使用
microsoft/mssql Server linux
image)

这两个容器都在运行并连接到同一个用户定义的网桥网络

如果在asp.net core容器中打开bash终端并运行以下命令:

dotnet ef migrations add InitialMigration
我希望我的代码优先模型能够在网络上运行的SQL Server实例中创建,因为当我在本地运行安装程序(没有容器)时会发生这种情况。相反,我得到的结果如下:

Did you mean to run dotnet SDK commands? Please install dotnet SDK from:
http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
我感到困惑,因为我认为必须安装dotnet。我在Dockerfile中使用了
microsoft/aspnetcore
作为基础层,我可以看到这反过来又使用
microsoft/dotnet:1.0.3-runtime
作为基础层

有人能解释一下我为什么会收到这个消息,以及我是否以正确的方式处理这个解决方案(web api和sql server在不同的容器中)? 如果我确实需要安装dotnet sdk,如果有人能在Dockerfile中告诉我如何安装,我将不胜感激

谢谢你的帮助


asp.net核心Dockerfile的内容

FROM microsoft/aspnetcore:1.1.0
WORKDIR /app
COPY bin/Debug/netcoreapp1.1/publish /app
ENV ASPNETCORE_URLS http://*:3000
EXPOSE 3000

ENTRYPOINT /bin/bash -c "dotnet MyAppName.dll"

microsoft/aspnetcore:1.1.0
您使用的是基于
microsoft/dotnet:1.1.0-runtime
。它只包含.NET核心运行时,而不包含SDK。要执行诸如
run
ef
和其他工具之类的命令,您需要