[英]ASP.NET Core docker build error
我是ASP.NET Core和docker的新手。 我创建了一个简单的ASP.NET Core 2.0应用程序,并尝试在Windows上使用docker。 但是,我收到此错误:
Your Docker server host is configured for 'Linux', however the docker-compose project targets 'Windows'.
虽然它似乎是非常有用的错误,但我无法找到“为Windows配置主机”的位置
基本上,Celestin Bochis和Pavel Agarkov的答案都很棒。 但是至少自.net core 2.2以来,docker的os存储在.csproj文件中。
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
...
</PropertyGroup>
...
</Project>
并且不要忘记修改您的docker文件。 图像应该是正确的。 对于.net core 2.2即:
Linux:
Microsoft/dotnet:2.2-aspnetcore-runtime AS base
microsoft/dotnet:2.2-sdk AS build
Windows:
microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1803
microsoft/dotnet:2.2-sdk-nanoserver-1803
当我创建项目以定位Windows并且之后想要将其切换到Linux目标时,我收到此错误。 如果您想使用Linux容器,则需要更多一些步骤:
在Dockerfile上,对于基础使用“microsoft / aspnetcore:2.0”和构建,使用“microsoft / aspnetcore-build:2.0”,所以它应该如下所示:
FROM microsoft/aspnetcore:2.0 AS base WORKDIR /app EXPOSE 80 FROM microsoft/aspnetcore-build:2.0 AS build WORKDIR /src COPY WebApplication7/WebApplication.csproj WebApplication/ RUN dotnet restore WebApplication/WebApplication.csproj COPY . . WORKDIR /src/WebApplication RUN dotnet build WebApplication.csproj -c Release -o /app
右键单击Docker托盘图标>设置>共享驱动器>选择项目所在的驱动器。
如果docker在windows机器上运行,那么你需要在.dcproj文件中更改“DockerTargetOS”的值应为“Windows”。
从visual studio卸载docker项目并编辑项目并将值“Windows”设置为“DockerTargetOS”。
<DockerTargetOS>Windows</DockerTargetOS>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.