2017-02-10 13 views
4

У меня есть операционная система Windows 10 Home. Я установил панель инструментов Docker. Я хочу развернуть мое приложение .net для Docker. Я создал файл Docker со ссылкой на следующие полезные статьи: https://stormpath.com/blog/tutorial-deploy-asp-net-core-on-linux-with-dockerРазвертывание приложения .net для докеры дает «Microsoft.DotNet.Props» не найдена ошибка

Мой файл докер выглядит следующим образом:

FROM microsoft/dotnet:latest 
COPY . /app 
WORKDIR /app 

RUN ["dotnet", "restore"] 
RUN ["dotnet", "build"] 

EXPOSE 5000/tcp 
ENV ASPNETCORE_URLS http://*:5000 

ENTRYPOINT ["dotnet", "run"] 

Но когда я бегу, команда докеров для создания образа, он дает мне ошибку.

[email protected]_name MINGW64 path to solution 
$ docker build -t helloWorld:core . 

Ошибка:

/app/Web.xproj(7,3): error MSB4019: The imported project "/usr/share/dotnet/sdk/1.0.0-rc4-004771/Microsoft/VisualStudio/v14.0/DotNet/Microsoft.DotNet.Props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. 
The command 'dotnet restore' returned a non-zero code: 1 

Может кто-то пожалуйста, руководство, что происходит не так здесь, как я новичок в Докер.

ответ

5

Как вы видите Web.xproj в вашей ошибке, похоже, что у вас такая же проблема, как описано в this github issue. Корень такой проблемы заключается в том, что Microsoft обновила свой докер до новейшего SDK, который возвращается к .csproj от project.json. Решение состоит в том, чтобы использовать другой, 1.1-sdk-projectjson тег:

FROM microsoft/dotnet:1.1-sdk-projectjson 

Обратите внимание на microsoft/dotnet/ Docker странице:

The latest tag no longer uses the project.json project format, but has now been updated to be csproj/MSBuild-based. If you do not wish to migrate your existing projects to MSBuild simply change your Dockerfile to use the 1.1.0-sdk-projectjson or 1.1.0-sdk-projectjson-nanoserver tag. Going forward, new .NET Core sdk images will be MSBuild-based.

+0

Я изменил имя изображения от "Microsoft/DotNet: последние" в «Microsoft/1,1-СДК-projectjson "в файле докеров. Но это дает мне следующую ошибку: «репозиторий microsoft/1.1-sdk-projectjson не найден: не существует или нет доступа к выходу». –

+0

@PurnimaNaik извините, '1.1.0-sdk-projectjson' является тегом, а не изображением. Я отредактировал ответ. Вам нужно использовать 'microsoft/dotnet: 1.1-sdk-projectjson' – Set

+0

Теперь восстанавливать работы частично. Он не может разрешить мои основные библиотеки .net. Это дает мне ошибку «Невозможно разрешить» Logging.Interfaces (> = 1.0.0) 'для' .NETCoreApp, Version = v1.1 '". Не могли бы вы рассказать мне, почему я это получаю? Я получаю эту ошибку для всех моих библиотек. –