添加其他引用后,Dotnet 容器不会在 kubernetes 中启动



dotnet 核心容器在错误"回退重启失败容器"时无法在 kubernetes 中启动

这总是在添加对项目的其他引用后发生。

Kubectl 日志容器不会生成任何日志。

当我在本地拉取映像并通过以下方式运行它时

docker run -it  app:latest . -p 80:80

在命令行中,它将转义而不会引发任何错误。尝试添加详细日志,它不会引发任何错误。

从视觉工作室启动时尝试了 ubuntu 映像,它也运行良好。在本地编译它运行良好,并且通过Visual Studio运行Docker,映像构建良好。

还尝试用--no-cache旗帜建造,但没有成功

如果不在 docker 容器中运行它,没有问题。还原、生成或发布步骤中没有错误。

在 AKS 1.14.6 上运行

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-alpine AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-alpine AS build
WORKDIR /src
COPY ["Company.Reference.ApplicationHub/Company.Reference.ApplicationHub.csproj", "Company.Reference.ApplicationHub/"]
COPY ["Core/Providers/Company.Reference.DeliveryPlanner.Provider/Company.Reference.DeliveryPlanner.Provider.csproj", "Core/Providers/Company.Reference.DeliveryPlanner.Provider/"]
COPY ["Core/Providers/Company.Reference.Ups/Company.Reference.Ups.csproj", "Core/Providers/Company.Reference.Ups/"]
COPY ["Common/Company.Reference.Common/Company.Reference.Common.csproj", "Common/Company.Reference.Common/"]
COPY ["Core/Providers/Company.Reference.Tracking.Provider/Company.Reference.Tracking.Provider.csproj", "Core/Providers/Company.Reference.Tracking.Provider/"]
COPY ["Core/Providers/Company.Reference.Authentication.Provider/Company.Reference.Authentication.Provider.csproj", "Core/Providers/Company.Reference.Authentication.Provider/"]
COPY ["Core/Providers/Company.Reference.Locator.Provider/LocatorProvider/Company.Reference.Locator.Provider.csproj", "Core/Providers/Company.Reference.Locator.Provider/LocatorProvider/"]
COPY ["Core/Providers/Company.Reference.Geolocate.Provider/Company.Reference.Geolocate.Provider.csproj", "Core/Providers/Company.Reference.Geolocate.Provider/"]
COPY ["Core/Repository/Company.Reference.Repository/Company.Reference.Repository.csproj", "Core/Repository/Company.Reference.Repository/"]
COPY ["Core/Providers/Company.Reference.MyChoice.Provider/Company.Reference.MyChoice.Provider.csproj", "Core/Providers/Company.Reference.MyChoice.Provider/"]
COPY ["Core/Company.Reference.Infrastructure/Company.Reference.Infrastructure.csproj", "Core/Company.Reference.Infrastructure/"]
COPY ["Core/Providers/Company.Reference.EligibilityOptions.Provider/Company.Reference.EligibilityOptions.Provider.csproj", "Core/Providers/Company.Reference.EligibilityOptions.Provider/"]
RUN dotnet restore "Company.Reference.ApplicationHub/Company.Reference.ApplicationHub.csproj"
COPY . .
WORKDIR "/src/Company.Reference.ApplicationHub"
RUN dotnet build "Company.Reference.ApplicationHub.csproj" -c Release -o /app -v diag
FROM build AS publish
RUN dotnet publish "Company.Reference.ApplicationHub.csproj" -c Release -o /app -v diag
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "/app/Company.Reference.ApplicationHub.dll"]

在添加其他引用之前,它曾经运行良好。可能是在某处缓存吗?

你确定你运行的镜像与 Kubernetes 的镜像相同吗?因为一旦构建了映像,内容(以及您的依赖项(就不会受到影响。

尝试使用其他标记重新构建映像(使用"latest"从来都不是一个好主意(:

docker build . -t app:v1

然后在 Kubernetes 中使用app:v1作为你的镜像

最新更新