Проверка готовности в Docker
Проверка готовности ждёт, пока сервер начнёт принимать запросы, а не только пока процесс появился. Служба периодически запускает короткую команду внутри копии и отмечает успех или неудачу.
Сервис db на mysql:9.7
получает пароль demo
и блок проверки с паузой
5 секунд:
services:
db:
image: mysql:9.7
environment:
MYSQL_ROOT_PASSWORD: demo
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 5s
timeout: 5s
retries: 10
Команда mysqladmin ping
с параметром -h localhost
спрашивает локальный сервер,
жив ли он.
Фоновый подъём проекта
выполняют так:
docker compose up -d
Список сервисов открывают
подкомандой ps
у docker compose:
docker compose ps
В таблице списка здоровье видно словами: сначала идёт ожидание, затем отметка успеха, когда база отвечает. Таблицу ответа клиента здесь не смотрят.
Добавьте проверку готовности сервису db с короткой паузой 3 секунды между попытками.
Поднимите проект в фоне и отметьте в списке сервисов, когда статус станет успешным.