【问题标题】:EF Core migrations using asp.net core, SQL Server and Docker yields dotnet SDK error使用 asp.net core、SQL Server 和 Docker 的 EF Core 迁移产生 dotnet SDK 错误
【发布时间】:2017-05-27 19:25:38
【问题描述】:

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

Windows 10 专业版

Visual Studio 代码


我已经使用 yeoman 生成器通过 Docker 创建了一个 ASP.NET Core 项目:

yo aspnet
yo docker

当我尝试让 API 从 Docker 容器连接到我在本地运行的 SQL Server 实例时遇到了问题。

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

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

如果我在我的 asp.net 核心容器中打开一个 bash 终端并运行命令:

dotnet ef migrations add InitialMigration

我希望我的 Code First 模型将在网络上运行的 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 core 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"

【问题讨论】:

    标签: sql-server docker asp.net-core entity-framework-core


    【解决方案1】:

    microsoft/aspnetcore:1.1.0 您使用的是基于microsoft/dotnet:1.1.0-runtime。它仅包含 .NET Core 运行时,不包含 SDK。要执行runef 和其他工具之类的命令 - 你需要one of sdk-based images

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-29
      • 2018-07-18
      • 2021-11-22
      • 2019-04-11
      • 1970-01-01
      • 1970-01-01
      • 2018-07-15
      • 1970-01-01
      相关资源
      最近更新 更多