无法使 docker healthcheck 与 ECS Fargate v 1.4.0 一起使用

Can not get docker healtcheck to work with ECS Fargate v 1.4.0

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

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

健康检查定义为:

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

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

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

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

现在应该解除封锁。