You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Framework 4.8通过Docker部署至Kubernetes(AWS EKS)失败求助

问题解决:Docker构建平台不匹配错误

问题根源

你使用的mcr.microsoft.com/dotnet/framework/sdk系列镜像仅支持Windows容器,而GitLab构建环境(Runner)或AWS EKS集群默认使用Linux环境,导致拉取镜像时出现平台不匹配报错。另外你的项目是.NET Core类型(从ENTRYPOINT ["dotnet", "WebSite2.dll"]可判断),却错误选用了.NET Framework专属的SDK镜像,这也是核心矛盾点。

解决方案

1. 修正Dockerfile中的镜像选择

将构建阶段的.NET Framework SDK替换为对应版本的.NET Core SDK镜像,同时修正解决方案文件名的错误(WebSite2..sln多了一个点):

# 选择对应版本的.NET Core ASP.NET镜像(比如.NET Core 3.1,根据你的项目实际版本调整)
FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base

ARG BUILD_ENV
ENV ASPNETCORE_ENVIRONMENT=$BUILD_ENV
WORKDIR /app

# 使用同版本的.NET Core SDK镜像进行构建
FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build
WORKDIR /src
COPY . /src
# 修正解决方案文件名的多余点
RUN dotnet build "WebSite2.sln" -o /app/build

FROM build AS publish
RUN dotnet publish "WebSite2.sln" -o /app/publish /p:UseAppHost=false

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebSite2.dll"]
EXPOSE 80

2. 确认构建环境平台一致性

  • 确保GitLab Runner使用Linux环境(默认配置即可),避免使用Windows Runner(除非你特意部署Windows容器到EKS的Windows节点)。
  • AWS EKS若要部署Windows容器,需要额外配置Windows节点组,但.NET Core项目推荐使用Linux容器,更轻量且兼容性更好。

内容的提问来源于stack exchange,提问作者sreddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 01:46:06