Entity framework 7 с сервером Microsoft SQL не работает в Docker

Я использую EntityFramework 7 с сервером Microsoft SQL в asp.net 5. Я использую EntityFramework.MicrosoftSqlServer: 7.0.0-rc1-final. Когда я запускаю свое веб-приложение в Visual Studio, все работает, как и ожидалось. Но я хочу запустить свое приложение в Docker. Я использую официальный образ Docker для запуска приложения asp.net: microsoft/aspnet:1.0.0-rc1-update1-coreclr

Вот мой докерфайл:

ОТ Microsoft/ASPNET: 1.0.0-rc1-update1-coreclr

КОПИРОВАТЬ проект.json /приложение/

РАБОЧИЙКАТАЛОГ /приложение

RUN ["дну", "восстановить"]

КОПИРОВАТЬ . /приложение

КОНТЕЙНЕР_ПОРТ_АРГ=5000

ARG SERVER_URLS=http://*:$CONTAINER_PORT

СЕРВЕР ENV.URLS $SERVER_URLS

ЭКСПОЗИРОВАТЬ $CONTAINER_PORT

ENTRYPOINT ["dnx", "-p", "project.json", "web"]

Сборка в докере прошла успешно, но когда я запускаю приложение, я получаю следующую ошибку после запуска приложения:

Исключение при запуске приложения: System.IO.FileLoadException: не удалось загрузить файл или сборку «приложение, культура = нейтральная, PublicKeyToken = null» или одна из ее зависимостей. Общее исключение (исключение из HRESULT: 0x80131500) [36mwebapi_1 | [0mFile name: 'app, Culture=neutral, PublicKeyToken=null' ---> Microsoft.Dnx.Compilation.CSharp.RoslynCompilationException: /app/Startup.cs(33,18): ошибка DNXCore, версия=v5.0 CS1061 : «EntityFrameworkServicesBuilder» не содержит определения для «AddSqlServer», и не удалось найти метод расширения «AddSqlServer», принимающий первый аргумент типа «EntityFrameworkServicesBuilder» (вам не хватает директивы using или ссылки на сборку?)

Проблема, похоже, в команде «AddSqlServer». Странно то, что он работает при сборке и запуске из Visual Studio. Кто-нибудь знает что-то об этой проблеме?

Спасибо.


person Tomislav    schedule 07.04.2016    source источник


Ответы (1)


Попробуйте явным образом поделиться своим диском с хостом Docker. Если вы используете докер-машину, это находится в настройках по умолчанию в Virtual Box. Если у вас есть бета-версия Docker для Windows, вы можете сделать это в настройках с помощью значка на панели задач. Возможно, метод расширения отсутствует, просто Docker не может получить к нему доступ.

person Feasoron    schedule 24.05.2016