您的 Docker 服务器主机配置为"Linux",但您的项目目标'Windows' .Net 6



我已经在Visual studio 2022中创建了.net核心web api,并启用了docker,所选操作系统为Windows。在使用Docker构建代码之后,我得到了"您的Docker服务器主机配置为"Linux",但您的项目目标是"Windows">

下面是我的docker文件。

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["ApacheKafka.Producer/ApacheKafka.Producer.csproj", "ApacheKafka.Producer/"]
RUN dotnet restore "ApacheKafka.Producer/ApacheKafka.Producer.csproj"
COPY . .
WORKDIR "/src/ApacheKafka.Producer"
RUN dotnet build "ApacheKafka.Producer.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "ApacheKafka.Producer.csproj" -c Release -o /app/publish 
/p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "ApacheKafka.Producer.dll"]

In Container.将其指向Windows操作系统

<DockerDefaultTargetOS Condition="'$(DockerDefaultTargetOS)' == 
''">Windows</DockerDefaultTargetOS>

Container.targets中,您将容器类型定位为Windows:

<DockerDefaultTargetOS Condition="'$(DockerDefaultTargetOS)' == 
''">Windows</DockerDefaultTargetOS>

然而,您的Docker实例可能被配置为托管Linux容器。您应该执行以下操作之一:

  • <DockerDefaultTargetOS>更改为Linux(确保容器正确运行(
  • 将Docker实例配置到Windows

使用Docker Desktop将Docker容器类型更改为Windows

以下是Docker文档的链接,概述了如何使用Docker Desktop配置Docker:https://docs.docker.com/desktop/settings/windows/

切换容器类型的一种简单方法是:

  1. 右键单击系统托盘中的Docker图标
  2. 单击Switch to Windows Containers...按钮

相关链接

如何更改对.Net Core Web应用程序项目的Docker操作系统支持?

相关内容