我有一个打包在 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。 但我有控制台应用程序。这种情况我能做什么?
您可以在没有运行状况检查端点的情况下使用 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