Проверка готовности в Docker
Проверка готовности ждёт, пока сервер начнёт отвечать на команду, а не только пока процесс появился. Служба периодически запускает короткую команду внутри копии и отмечает успех или неудачу.
Сервис db на mongo:8.3
без пароля получает блок
проверки с паузой
5 секунд:
services:
db:
image: mongo:8.3
healthcheck:
test: ["CMD", "mongosh", "--quiet", "--eval", "db.adminCommand('ping').ok"]
interval: 5s
timeout: 5s
retries: 10
Команда mongosh
с флагом --quiet
спрашивает локальный сервер,
отвечает ли он на ping.
Фоновый подъём проекта
выполняют так:
docker compose up -d
Список сервисов открывают
подкомандой ps
у docker compose.
В таблице списка здоровье
видно словами: сначала
идёт ожидание, затем отметка
успеха, когда база отвечает.
Статус здоровья читают
именно в списке сервисов:
docker compose ps
Добавьте проверку готовности сервису db с короткой паузой 3 секунды между попытками.
Поднимите проект в фоне и отметьте в списке сервисов, когда статус станет успешным.