ASP.NET Core docker构建错误

kag*_*oki 39 c# docker docker-compose asp.net-core asp.net-core-2.0

我是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配置主机"的位置

Pav*_*kov 57

这是docker-compose.dcproj文件在这里你可以设置你要定位的操作系统:

<DockerTargetOS>Linux</DockerTargetOS>
Run Code Online (Sandbox Code Playgroud)

要将docker守护程序切换到相同的OS,您可以使用Docker托盘图标或Docker Settings窗口(可从同一菜单访问):
在此输入图像描述

  • 我得到同样的错误,但我实际上想要针对Linux - 而不是Windows.这种情况的解决方案是什么? (2认同)
  • 除非很明显,否则您还应该通过右键单击选择“添加&gt;业务流程&gt; docker-compose”将业务流程添加到您的项目中,在没有业务流程设置的情况下确实可能会出现此问题,并且通过进行业务流程设置,这是我们可以解决的一种方法现在设置目标操作系统 (2认同)

Maa*_*eft 11

嗯,基本上Celestin Bochis和Pavel Agarkov的回答都很棒。但是,至少从.net core 2.2开始,docker的操作系统存储在.csproj文件中。

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
    ...
   </PropertyGroup>

   ...
</Project>
Run Code Online (Sandbox Code Playgroud)

并且也不要忘记修改您的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
Run Code Online (Sandbox Code Playgroud)


小智 7

启用docker support时,请确保选择正确的操作系统:

操作系统下拉菜单

您的docker守护程序也必须以Linux容器为目标.