2016-04-07 10 views
0

Я использую 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-CoreCLREntity framework 7 с сервером Microsoft SQL, который не работает в Docker

Вот мой dockerfile:

ОТ майкрософт/САШ: 1.0.0-rc1 -update1-CoreCLR

КОПИРОВАНИЯ project.json/приложение/

WORKDIR/приложение

RUN [ "ДНУ", "восстановить"]

COPY./Приложение

ARG CONTAINER_PORT = 5000

ARG SERVER_URLS = HTTP: // *: $ CONTAINER_PORT

ENV SERVER.URLS $ SERVER_URLS

ПОДВЕРГАТЬ $ CONTAINER_PORT

Entrypoint [ "DNX "," -p "," project.json "," web "]

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

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

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

Спасибо.

ответ

0

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