我为我的 ECS Fargate 服务定义了一个运行状况检查,当我在本地测试并使用 Fargate v 1.3.0 时它可以工作。
但是当我更改为 Fargate 平台版本 1.4.0 时,它总是变得不健康。但实际的服务是有效的。我可以访问容器公共(public) IP 上的服务。
健康检查定义为:
"CMD-SHELL", "curl --fail http://localhost || exit 1"
最佳答案
因此,我们对此进行了调查,发现平台版本 1.4 中存在问题,如果运行状况检查输出任何内容到 stderr
出现假阴性。显然,我们会解决这个问题,但与此同时,您可以通过(在这种情况下)以静默模式运行 curl 或简单地重定向 stderr
来解决此问题。输出到/dev/null:
curl -s --fail http://localhost || exit 1
或者
curl --fail http://localhost 2>/dev/null || exit 1
现在应该解除对您的阻止。
关于docker - 无法让 docker healthcheck 与 ECS Fargate v 1.4.0 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61222368/