Проверка работоспособности Docker — веб-сервис

В настоящее время я пытаюсь проверить, исправен ли веб-сервис, работающий внутри контейнера докеров, и имеет ли его код состояния http 200.

Но докеры, встроенные в HealthCheck, проверяют только коды выхода.

Я запускаю эту команду через терминал:

curl -o /dev/null -s -w "%{http_code}\n" http://localhost:8080/api/health

И проверьте, равен ли возвращенный код состояния 200. Как я могу встроить его в проверку работоспособности докеров?

Спасибо и привет!


person Creative crypter    schedule 22.07.2018    source источник


Ответы (1)


Вы можете работать с тем фактом, что HEALTHCHECK проверяет только значения кода выхода команды следующим образом:

  1. Используйте параметры -w и -s в curl, чтобы вывести только код состояния http запроса API.
  2. Используйте тестовые выражения bash для проверки кода состояния

HEALTHCHECK в вашем Dockerfile может выглядеть так:

HEALTHCHECK --interval=20s --retries=2 CMD \
    [[ "$(curl -o /dev/null -s -w "%{http_code}\n" http://localhost:8080/api/health)" == "200" ]]

См. документацию здесь

person moebius    schedule 22.07.2018