0

我正在將.net核心應用部署到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 

依賴Web應用程序的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-*" 
    }, 

當我運行下面的命令,創建圖像,它給我錯誤:

[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'. 

有人可以請指導,什麼是錯了他因爲我對Docker完全陌生。

+0

你在哪裏保存dockerfile? –

+0

我的碼頭文件在web項目中,它是.net核心應用程序。所有其他項目都作爲我的Web應用程序的參考添加。 –

+0

您應該嘗試將dockerfile作爲/ 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 build命令時,我得到「無法在當前目錄中找到'project.json'」錯誤。 –

+0

您能否看看答案並再次檢查結構? –

0

我的網絡核心應用程序也沒有project.json文件。我解決了我的問題:FROM microsoft/dotnet:1.1-sdk而不是FROM microsoft/dotnet:1.1-sdk-projectjson

相關問題