添加其他参考后,Dotnet容器不会在Kubernetes中启动

时间:2019-09-04 21:54:16

标签: .net docker kubernetes .net-core azure-aks

dotnet核心容器未在kubernetes中启动,并显示错误“退回重新启动失败的容器”

在向项目添加其他引用之后,总是会发生这种情况。

kubectl日志容器不产生任何日志。

当我将图像拖到本地并通过运行时

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

在命令行中它将退出而不会引发任何错误。尝试添加详细的日志,并且不会引发任何错误。

从Visual Studio启动时尝试了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"]

在添加其他引用之前,它可以正常运行。可能是因为在某处缓存了吗?

1 个答案:

答案 0 :(得分:0)

您确定从docker运行与Kubernetes相同的映像吗? “因为一旦构建了映像,内容(以及您的依存关系)就不会受到影响。

尝试使用其他标签重建图像(永远不要使用“ latest”):

docker build . -t app:v1

然后使用app:v1作为Kubernetes中的图片