ASP.NET Core docker build error

29,045

Solution 1

It is docker-compose.dcproj file where you can set up the OS you want to target:

<DockerTargetOS>Linux</DockerTargetOS>

To switch docker daemon to the same OS you can use Docker tray icon or Docker Settings window (accessible from the same menu):
enter image description here

Solution 2

Well basically the answer of Celestin Bochis and Pavel Agarkov are great. However since .net core 2.2 at least, the os of docker is stored in the .csproj file.

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

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

   ...
</Project>

And also don't forget to modify your docker file. The images should be the correct one. For .net core 2.2 That is :

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

Solution 3

Make sure to choose the correct OS when you Enable docker support:

OS dropdown

Your docker daemon has to target Linux containers as well.

Solution 4

If the docker is running on the windows machine then you need to change the value of "DockerTargetOS" should be "Windows" in .dcproj file.

Unload the docker project from visual studio and edit the project and set the value "Windows" to "DockerTargetOS".

<DockerTargetOS>Windows</DockerTargetOS>
Share:
29,045
kagetoki
Author by

kagetoki

Updated on July 08, 2022

Comments

  • kagetoki
    kagetoki almost 2 years

    I'm new to ASP.NET Core and docker. I've created a simple ASP.NET Core 2.0 app and try to use docker with it on Windows. However, I get this error:

    Your Docker server host is configured for 'Linux', however the docker-compose project targets 'Windows'.

    Although it seems to be pretty informative error, I can't find where to 'configure host for Windows'