Docker healthcheck文档显示了curl:
HEALTHCHECK --interval=5m --timeout=3s \
CMD curl -f http://localhost/ || exit 1
Run Code Online (Sandbox Code Playgroud)
我希望wget中的一行等价物在没有返回HTTP 200时退出1.
Den*_*oer 31
以下似乎是等效的:
HEALTHCHECK --interval=5m --timeout=3s \
CMD wget --quiet --tries=1 --spider http://localhost/ || exit 1
Run Code Online (Sandbox Code Playgroud)
int*_*tgr 10
Dennis Hoer 的回答很好,但我更喜欢-nv( --no-verbose) 而不是--quiet,那么如果发生错误,可以从 Docker 获取原因:
HEALTHCHECK --interval=5s --timeout=5s --retries=3 \
CMD wget -nv -t1 --spider 'http://localhost:8000/' || exit 1
Run Code Online (Sandbox Code Playgroud)
Docker 捕获的示例输出:
% docker inspect $container --format "{{ (index (.State.Health.Log) 0).Output }}"
Connecting to localhost:8000 (127.0.0.1:8000)
wget: server returned error: HTTP/1.1 404 Not Found
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5739 次 |
| 最近记录: |