首页 > 解决方案 > 无法让 docker healthcheck 与 ECS Fargate v 1.4.0 一起使用

问题描述

我为我的 ECS Fargate 服务定义了一个运行状况检查,当我在本地测试并使用 Fargate v 1.3.0 时它可以工作。

但是当我更改为 Fargate 平台版本 1.4.0 时,它总是变得不健康。但实际的服务是有效的。我可以访问容器公共 IP 上的服务。

健康检查定义为:

"CMD-SHELL", "curl --fail http://localhost || exit 1"

标签: dockeramazon-ecsaws-fargate

解决方案


因此,我们对此进行了调查,平台版本 1.4 中存在一个问题,如果运行状况检查输出任何stderr错误否定结果,就会发生这种情况。显然,我们会解决这个问题,但与此同时,您可以通过(在这种情况下)以静默模式运行 curl 或简单地将stderr输出重定向到 /dev/null 来解决这个问题:

curl -s --fail http://localhost || exit 1

或者

curl --fail http://localhost 2>/dev/null || exit 1

现在应该解除对您的阻止。


推荐阅读