0

Я развертываю приложение .net core для Docker.Docker не может разрешить библиотеки стандартных классов .net, при развертывании основного приложения .net для Docker

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

FROM microsoft/dotnet:1.1-sdk-projectjson 

COPY . /app 
WORKDIR /app 

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

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

ENTRYPOINT ["dotnet", "run"] 

Его не в состоянии решить .net стандартные библиотеки классов, которые будут добавлены к моему основной .net приложению.

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

Core folder 

    -Logging.Interfaces .net std project 

    -Logging.Entities .net std project 

Infrastructure folder 

    -Infrastructure.Logging .net std project 

Services folder 

    -Services .net std project 

Web folder 

    -Web .net core application 

Зависимости раздел project.json из веб-приложения выглядит следующим образом:

{ 
    "dependencies": { 
    "Microsoft.NETCore.App": { 
     "version": "1.0.0", 
     "type": "platform" 
    }, 
    "Microsoft.ApplicationInsights.AspNetCore": "1.0.0", 
    "Microsoft.AspNetCore.Mvc": "1.0.1", 
    "Microsoft.AspNetCore.Routing": "1.0.1", 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1", 
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0", 
    "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0", 
    "Microsoft.Extensions.Configuration.Json": "1.0.0", 
    "Microsoft.Extensions.Logging": "1.0.0", 
    "Microsoft.Extensions.Logging.Console": "1.0.0", 
    "Microsoft.Extensions.Logging.Debug": "1.0.0", 
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0", 
    "Services": "1.0.0-*", 
    "DomainInterfaces": "1.0.0-*", 
    "Core.Logging.Interfaces": "1.0.0-*", 
    "Core.Logging.Entities": "1.0.0-*", 
    "Infrastructure.Logging": "1.0.0-*" 
    }, 

Когда я запускаю следующую команду для создания образа, это дает me error:

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

Unable to resolve 'Core.Logging.Interfaces (>= 1.0.0)' for '.NETCoreApp,Version=v1.1'. 
    Unable to resolve 'Core.Logging.Entities (>= 1.0.0)' for '.NETCoreApp,Version=v1.1'. 
    Unable to resolve 'Services (>= 1.0.0)' for '.NETCoreApp,Version=v1.1'. 
    Unable to resolve 'Infrastructure.Logging (>= 1.0.0)' for '.NETCoreApp,Version=v1.1'. 
    Unable to resolve 'DomainInterfaces (>= 1.0.0)' for '.NETCoreApp,Version=v1.1'. 

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

+0

где вы сохраняете файл докеров? –

+0

Мой файл докеров находится в веб-проекте, который представляет собой приложение .net core. И все другие проекты добавляются в качестве ссылки в моем веб-приложении. –

+0

Вам следует попробовать разместить файл докеров в качестве папки/src. –

ответ

0

Я думаю, что вы должны пытались создать Dockerfile на уровне решения в следующем составе:

/YourProject

  • Src
    • Ядро
    • инфраструктуры
    • Услуги
    • WebApp
  • Dockerfile

и изменяет содержание Dockerfile на:

FROM microsoft/dotnet:1.1-sdk-projectjson 

COPY . /app 
WORKDIR /app/src/WebApp 

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

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

ENTRYPOINT ["dotnet", "run"] 

Надеется, что это помощь!

+0

Когда я изменяю Dockerfile и запускаю команду сборки docker, я получаю ошибку «Не удалось найти» project.json «в текущем каталоге». –

+0

Не могли бы вы взглянуть на ответ и снова проверить структуру? –

0

В моем ядре net core приложение также не имеет файла project.json. Я исправил свою проблему следующим образом: FROM microsoft/dotnet:1.1-sdk вместо FROM microsoft/dotnet:1.1-sdk-projectjson