docker - 无法让 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"
解决方案
因此,我们对此进行了调查,平台版本 1.4 中存在一个问题,如果运行状况检查输出任何stderr
错误否定结果,就会发生这种情况。显然,我们会解决这个问题,但与此同时,您可以通过(在这种情况下)以静默模式运行 curl 或简单地将stderr
输出重定向到 /dev/null 来解决这个问题:
curl -s --fail http://localhost || exit 1
或者
curl --fail http://localhost 2>/dev/null || exit 1
现在应该解除对您的阻止。
推荐阅读
- alert - 发生 Service Bus [Premium] 故障转移时发出警报?
- python - TFX 同时运行多个训练器
- sql - 递归查询 postgres12 给出 [42P19] 错误
- java - 为什么我当前所在的城市在 android studio 中为空?
- jquery - 为什么我的淡入淡出计时器不起作用
- angular - 如何以角度测试函数?
- css - CSS Grid - 右对齐特定列
- java - 当 OpenGL ES 2.0/3.0 中有许多对象时,alpha 混合出现问题
- reactjs - 如何在 React Native 中正确测试
- python - 我将如何使用 PIL 对图像进行像素化?