Разница между StartupCheckStrategy и WaitStrategy в тестовых контейнерах

Недавно у нас возникла проблема со временем запуска некоторых наших тестовых контейнеров: медленный компьютер просто не мог запустить контейнер без жестко заданных 30 секунд.

Проблема была решена путем перемещения всех наших проверок в WaitStrategy с настраиваемым таймаутом.

Есть ли причина для сохранения обоих чеков? А что нужно проверять в StartupCheckStrategy и в WaitStrategy?

1 ответ

Решение

Извините, что это немного сбивает с толку!

StartupCheckStrategy предназначен для проверки, удалось ли Docker вообще запустить контейнер. Есть несколько вариантов, но в основном это просто "контейнер достиг состояния RUNNING?".

Однако тот факт, что контейнер работает, не означает, что он действительно готов сделать что-нибудь полезное (например, принять соединения или выполнить работу) - это то, что WaitStrategy для. Проверки ожидания по умолчанию просто проверяют, прослушивают ли TCP-порты, но вы можете переопределить их с помощью более сложных проверок, например, попытка установить соединение через драйвер или поиск строк журнала.

Похоже, вы поступили правильно, переместив свои чеки в WaitStrategy реализация. Извините еще раз, что это сбивает с толку; нам явно нужно немного поработать над документами, чтобы их было легче понять и сделать более последовательными.

Другие вопросы по тегам