Выбор ответа Middle Docker для разработчика обновлено
depends_on и готовность базы
Вопрос
В Compose у api указано depends_on: [db]. При старте API иногда падает: база ещё не принимает подключения. Как исправить средствами Compose?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Healthcheck у db и condition: servicehealthy у api. Простой dependson гарантирует только порядок запуска контейнеров, а не готовность процесса внутри.
Варианты ответа
- Ничего не делать, depends_on и так ждёт готовности базы
- Поставить
restart: no, чтобы api не стартовал раньше - Healthcheck у
dbиcondition: service_healthyу apiправильный ответ - Поменять порядок сервисов в файле, db поставить первым
Разбор
Простой depends_on гарантирует только порядок запуска контейнеров, а не готовность процесса внутри. Условие service_healthy ждёт успешного healthcheck. В самом приложении тоже полезны повторы подключения.
- Готовности простой depends_on не ждёт.
restart: noуберёт даже автоматический перезапуск.- Порядок в файле на старт не влияет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.