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

相关问题