在将.net core应用程序部署到Docker时,Docker无法解析.net标准类库
我正在将.net核心应用程序部署到Docker 我的docker文件如下,添加到我的.net核心应用程序中:在将.net core应用程序部署到Docker时,Docker无法解析.net标准类库,docker,asp.net-core,asp.net-core-mvc,docker-compose,dockerfile,Docker,Asp.net Core,Asp.net Core Mvc,Docker Compose,Dockerfile,我正在将.net核心应用程序部署到Docker 我的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", "r
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
{
"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-*"
},
Web应用程序的project.json的依赖项部分如下:
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
{
"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-*"
},
当我运行以下命令时,为了创建图像,它会给我错误信息:
user@machine_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是全新的。我认为您应该尝试在解决方案级别创建Dockerfile,如下结构: /你的项目
- src
- 核心
- 基础设施
- 服务
- 网络应用
- 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"]
希望这有帮助 我认为应该尝试在解决方案级别创建Dockerfile,如下结构: /你的项目
- src
- 核心
- 基础设施
- 服务
- 网络应用
- 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"]
希望这有帮助 My dot net core应用程序也没有project.json文件。我修复了以下问题:
来自microsoft/dotnet:1.1-sdk
而不是microsoft/dotnet:1.1-sdk-projectjson我的dotnet核心应用程序也没有project.json文件。我修复了以下问题:来自microsoft/dotnet:1.1-sdk
而不是来自microsoft/dotnet:1.1-sdk-projectjson
您将docker文件保存在哪里?我的docker文件位于web project中,它是.net核心应用程序。并且所有其他项目都作为引用添加到我的web应用程序中。您应该尝试将docker文件作为/src文件夹放置在解决方案中。我尝试了您的建议,但仍然存在相同的问题。您将docker文件保存在何处?我的docker文件位于web project中,它是.net核心应用程序。所有其他项目都作为引用添加到我的web应用程序中。您应该尝试将dockerfile作为/src文件夹放置在解决方案中。我尝试了您的建议,但仍然存在相同的问题。当我更改dockerfile并运行docker build命令时,我得到“在当前目录中找不到'project.json'”错误。请看一下答案并再次检查结构好吗?当我更改Dockerfile并运行docker build命令时,我得到“在当前目录中找不到”project.json“错误。请看一下答案并再次检查结构好吗?