【发布时间】: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