2017-01-12 2 views
2

Я использую Docker для Windows, версии 1.13.0-rc5-beta35 (9606)Основные миграции EF с помощью ASP.NET ядро, SQL Server и Docker дает DotNet SDK ошибки

Окна 10 Pro

Визуальный Студийный код


Я создал проект ASP.NET ядро ​​с Докер использованием YEOMAN генератора:

yo aspnet 
yo docker 

У меня возникли проблемы, когда я пытался подключиться к API из контейнера Docker в экземпляр SQL Server, который я запускал локально.

Для решения этой проблемы я создал экземпляр SQL Server, работающий в собственном контейнере (с использованием изображения microsoft/mssql-server-linux).

Оба контейнера работают и подключены к той же сети с определенным мостом.

Если открыть Баш терминал в моей основной asp.net контейнера и выполнить команду:

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. Я использовал microsoft/aspnetcore в качестве базового слоя в своем файле Dockerfile, и я вижу, что это, в свою очередь, использует microsoft/dotnet:1.0.3-runtime, поскольку это базовый уровень ...

Может кто-нибудь объяснить, почему я получаю это сообщение, и если я приближаюсь к этому правильное решение (веб-сервер api и sql в отдельных контейнерах)? Если мне нужно установить 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" 

ответ

1

microsoft/aspnetcore:1.1.0 ваш используют основан на microsoft/dotnet:1.1.0-runtime. Он содержит только среду выполнения .NET Core, а не SDK. Для выполнения таких команд, как run, ef и других инструментах - вам необходимо one of sdk-based images

Смежные вопросы