Разница между StartupCheckStrategy и WaitStrategy в тестовых контейнерах
Недавно у нас возникла проблема со временем запуска некоторых наших тестовых контейнеров: медленный компьютер просто не мог запустить контейнер без жестко заданных 30 секунд.
Проблема была решена путем перемещения всех наших проверок в WaitStrategy с настраиваемым таймаутом.
Есть ли причина для сохранения обоих чеков? А что нужно проверять в StartupCheckStrategy и в WaitStrategy?
1 ответ
Извините, что это немного сбивает с толку!
StartupCheckStrategy
предназначен для проверки, удалось ли Docker вообще запустить контейнер. Есть несколько вариантов, но в основном это просто "контейнер достиг состояния RUNNING?".
Однако тот факт, что контейнер работает, не означает, что он действительно готов сделать что-нибудь полезное (например, принять соединения или выполнить работу) - это то, что WaitStrategy
для. Проверки ожидания по умолчанию просто проверяют, прослушивают ли TCP-порты, но вы можете переопределить их с помощью более сложных проверок, например, попытка установить соединение через драйвер или поиск строк журнала.
Похоже, вы поступили правильно, переместив свои чеки в WaitStrategy
реализация. Извините еще раз, что это сбивает с толку; нам явно нужно немного поработать над документами, чтобы их было легче понять и сделать более последовательными.