无法使docker healtcheck与ECS Fargate v 1.4.0配合使用

无法使docker healtcheck与ECS Fargate v 1.4.0配合使用,docker,amazon-ecs,aws-fargate,Docker,Amazon Ecs,Aws Fargate,我为我的ECS Fargate服务定义了一个运行状况检查,当我在本地进行测试并使用Fargate v 1.3.0时,它会工作 但当我换到Fargate平台1.4.0版时,它总是变得不健康。但实际的服务正在发挥作用。我可以访问公共IP上的服务 健康检查定义为: "CMD-SHELL", "curl --fail http://localhost || exit 1" 因此,我们对此进行了研究,发现平台版本1.4中存在一个问题,如果运行状况检查向stderr输出任何内容,就会出现假阴性。显然,我们

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

但当我换到Fargate平台1.4.0版时,它总是变得不健康。但实际的服务正在发挥作用。我可以访问公共IP上的服务

健康检查定义为:

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

因此,我们对此进行了研究,发现平台版本1.4中存在一个问题,如果运行状况检查向
stderr
输出任何内容,就会出现假阴性。显然,我们会解决这个问题,但在此期间,您可以通过(在本例中)在静默模式下运行curl或将
stderr
输出重定向到/dev/null来解决这个问题:

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


现在应该为您解除封锁。

您能检查一下集装箱吗?有时你会得到healthceck失败的原因
docker container inspect container——格式为“{json.State.Health}}”
据我所知,没有办法检查Fargate中运行的容器。自从1.4.0以后,它甚至不再使用docker,而是使用containerd。感谢您让我们注意到这一点,我们正在研究为什么会发生这种情况。当我们有答案时,我会回复你。我刚刚遇到同样的问题,可以确认Fargate 1.4.0上的这个解决方案对我有效。为了跟进这个问题,发布了一个更新来解决这个问题。5月22日之后启动的任务不应再看到此问题。@MatsLannér我今天刚刚遇到此问题,此解决方法为我解决了此问题。集群、服务和任务都是在过去3周内创建的。Aaron,你能私下给我你的AWS帐户id、地区和任务id吗。这种情况不应该再发生了,所以我想确保我们深入研究这一点,并找到它的根源:mlanner(位于)amazon.com。谢谢我在过去几天开始的任务中也遇到了同样的问题
curl --fail http://localhost 2>/dev/null || exit 1