Docker healthcheck document在curl中显示了这个:
HEALTHCHECK --interval=5m --timeout=3s \
CMD curl -f http://localhost/ || exit 1
我希望wget中的单行等价物在未返回HTTP 200时退出。
答案 0 :(得分:25)
以下似乎是等效的:
HEALTHCHECK --interval=5m --timeout=3s \
CMD wget --quiet --tries=1 --spider http://localhost/ || exit 1
答案 1 :(得分:2)
Dennis Hoer的回答很好,但是我更喜欢-nv
(--no-verbose
)而不是--quiet
,然后如果发生错误,则可以从Docker获得原因:
HEALTHCHECK --interval=5s --timeout=5s --retries=3 \
CMD wget -nv -t1 --spider 'http://localhost:8000/' || exit 1
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