Docker 容器中控制台应用程序的运行状况检查

问题描述 投票:0回答:1

我有一个打包在 docker 容器中的控制台应用程序。 这只是简单的.NET6.0控制台应用程序

using Microsoft.Extensions.Configuration;

var builder = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
    .AddEnvironmentVariables();

var configuration = builder.Build();

var baseAddress = configuration.GetValue<string>("BASE_ADDRESS");

Console.WriteLine($"Hello, World! {baseAddress}");

健康检查此控制台应用程序的最佳实践是什么。

如果是网络应用程序,我可以添加端点 \health。 但我有控制台应用程序。这种情况我能做什么?

c# docker console-application
1个回答
0
投票

您可以在没有运行状况检查端点的情况下使用 Powershell 脚本。

例如:

创建健康 healthcheck.sh:

pgrep -f "your_application_executable" > /dev/null

使用docker文件中复制健康检查命令

COPY healthcheck.sh /app 

HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 CMD ["./healthcheck.sh"]

然后构建 docker 镜像:

docker build -t your_image_name .
docker run -d --name your_container_name your_image_name

使用 dockerspect 检查应用程序运行状况:

docker inspect --format='{{json .State.Health.Status}}' your_container_name
© www.soinside.com 2019 - 2024. All rights reserved.