gpt4 book ai didi

docker - 如何在 docker 控制台应用程序中执行健康检查

转载 作者:行者123 更新时间:2023-12-03 16:27:49 25 4
gpt4 key购买 nike

我有一个 .net 2.2 核心控制台应用程序,它在 docker 容器中作为 HostedService 永久运行。它没有使用 ASPNet.Core,也不是 API,而是纯粹的 .net-core 应用程序。

启动时,它会执行许多健康检查,并在开始运行时执行。

我正在尝试编写蛋糕构建脚本并在 docker 中部署,并运行一些 mocha 集成测试。但是,集成步骤不会等待控制台应用程序完成其运行状况检查并且集成失败。

我阅读的所有健康检查指南都是针对 API 的。我没有 API,也没有端点。如何让 docker 等待控制台应用程序准备就绪?

提前致谢

最佳答案

您可以使用 docker-compose tool尤其是它的 healthcheck option在继续集成测试之前等待容器启动并完成其设置工作。
您可以添加 healthcheck阻止到您的应用服务定义:

myapp:
image: ...
healthcheck:
test:
["CMD", "somescript.sh", "--someswitch", "someparam"]
interval: 30s
timeout: 10s
retries: 4
您在 test 中指定的命令属性应验证应用程序的设置工作是否已完成。它可以是添加到 myapp 的一些自定义脚本。容器只是为了它的健康检查。
现在,您可以添加一些虚假服务 - 只是为了检查应用服务是否健康。根据您的特定情况,此责任可以通过集成测试交给容器。无论如何,这个其他服务应该有一个 depends_on block并在其中提及应用服务:
wait-for-app-setup:
image: ...
depends_on:
myapp:
condition: service_healthy
因此,docker-compose 将处理正确的顺序和适当的等待时间,以便正确启动和设置内容。

关于docker - 如何在 docker 控制台应用程序中执行健康检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55743121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com