如何从 docker 文件提供端点?

How to serve endpoint from docker file?

我有 .net 一个自托管应用程序,基本上,它运行 12 小时。整个功能在我的本地机器上按预期工作。

参考: Background tasks with hosted services in ASP.NET Core

目前,我们正在使用Kubernetes进行部署。在部署时,它正在使用活动端点检查健康状态,但部署失败,因为没有活动端点,因为它是后台 运行 应用程序。要在 Kubernetes 中部署应用程序,它需要活动端点。

有什么方法可以在后台 运行 应用程序的 docker 端调用活性端点时提供一些 JSON 数据?

这是我的 docker 代码。

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build-env
WORKDIR /app

# Copy everything
COPY . ./
# Restore as distinct layers
RUN dotnet restore
# Build and publish a release
RUN dotnet publish -c Release -o out

# Build runtime image
FROM mcr.microsoft.com/dotnet/aspnet:6.0
WORKDIR /app
COPY --from=build-env /app/out .
EXPOSE 8080/tcp
CMD ["dotnet", "DarkTesting.WorkerService.dll"]

我个人发现将我的后台服务部署为 ASP.NET 核心应用程序效果很好,因为我们可以:

  1. 使用 Healthchecks
  2. 部署 /health 端点
  3. 将 IHostedService 用于 运行 后台服务