だから、私はコメントで提案してきたもの、以下:Docs:
はDockerfileのHEALTHCHECK
機能を使用します。ような何か:ドッカー大群がサービスの更新時にこのヘルスチェックを尊重しないことを知って
HEALTHCHECK --interval=5m --timeout=3s \
CMD curl -f http://localhost/ || exit 1
は、それがゼロダウンタイムの展開を持っている相対的な簡単です。
しかし、あなたが言及したように、消費者の健康管理能力は高く、健康診断の間隔を広げる必要があります。その場合
は、私はあなたがすぐに最初の実行をやっヘルスと
current_minute % 5 == 0
で連続チェックをカスタマイズするためにお勧めしますが、ヘルス自体が
/30s
を実行している:
HEALTHCHECK --interval=30s --timeout=3s \
CMD /service_healthcheck.sh
healthcheck.sh
#!/bin/bash
CURRENT_MINUTE=$(date +%M)
INTERVAL_MINUTE=5
[ $((a%2)) -eq 0 ]
do_healthcheck() {
curl -f http://localhost/ || exit 1
}
if [ ! -f /tmp/healthcheck.first.run ]; then
do_healhcheck
touch /tmp/healthcheck.first.run
exit 0
fi
# Run only each minute that is multiple of $INTERVAL_MINUTE
[ $(($CURRENT_MINUTE%$INTERVAL_MINUTE)) -eq 0 ] && do_healhcheck
exit 0
覚えていることCOPY
healthcheck.shを/healthcheck.sh
(およびchmod +x
)
docker swarmが 'HEOCKTHCHECK' Dockerfile機能(' docker service create'で追加できる機能)を守るかどうか分かりません。私はそれを知っていいだろう – Robert
うん、そこに存在する:https://blog.newrelic.com/2016/08/24/docker-health-check-instruction/ 私はそれが再起動のために働いたとは思わなかったが、私は – alexpirine
私にお願いしてください、そして幸運を試してみましょう! – Robert