Ast*_*ngo 9 docker dockerfile health-check
我想加快容器的启动时间,但我的健康检查不允许我这样做。假设我正在进行健康检查
HEALTHCHECK --interval=300s --timeout=5s --start-period=5s --retries=3 CMD \
curl http://localhost:<port> > /dev/null || exit 1
Run Code Online (Sandbox Code Playgroud)
我想要的是不要等待 300 多秒来启动容器,而是在 10 秒后检查它是否正常(也许其中的应用程序在 10 秒后启动并运行),以及启动容器是否一切正常。
我需要间隔超过 300 秒,因为我不想检查其内部运行状况的频率超过 1/300
我怎样才能做到这一点?
jan*_*-di 12
编辑2023-07-17
现在支持设置start-interval在更短的时间间隔内进行检查start-period
该功能预计将在 docker 引擎 25 版本中发布。
例子:
HEALTHCHECK --interval=5m --start-period=3m --start-interval=10s \
CMD curl -f http://localhost/ || exit 1
Run Code Online (Sandbox Code Playgroud)
在这个例子中,有一个start-intervalof 10s,这意味着第一次健康检查是在容器启动后10s完成的。此后,每10s重复一次健康检查,直到健康状态切换到healthy,或者start-period结束 ( 3m )。之后,它会定期interval(5m)进行健康检查。
Docker 文档:https://docs.docker.com/engine/reference/builder/#healthcheck
相关拉取请求:https://github.com/moby/moby/pull/40894
截至 2021 年的原始答案
目前没有内置方法可以减少执行第一次运行状况检查之前的时间。Docker 始终在容器启动和第一次运行状况检查之间等待完整的时间间隔。该start-period选项仅定义一个宽限时间,允许健康检查失败而不将容器标记为不健康。interval仅当低于 时,这才有意义start-period。
有一个功能请求添加一个选项,该选项可以减少容器启动时的间隔,以使容器更快地进入健康状态: https ://github.com/moby/moby/issues/33410
| 归档时间: |
|
| 查看次数: |
3010 次 |
| 最近记录: |