Проверка готовности в Docker
Проверка готовности спрашивает сервер, принимает ли он подключения, а не только смотрит, что процесс запущен. Служба периодически запускает короткую команду внутри копии и отмечает успех или неудачу.
Сервис db на postgres:18
получает пароль demo
и блок проверки с паузой
5 секунд:
services:
db:
image: postgres:18
environment:
POSTGRES_PASSWORD: demo
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 10
Команда pg_isready
с флагом -U
и именем postgres
спрашивает, принимает ли
сервер соединения.
Фоновый подъём проекта
выполняют так:
docker compose up -d
Список сервисов открывают
подкомандой ps
у docker compose.
В таблице здоровье видно
словами: сначала ожидание,
затем отметка healthy,
когда база отвечает:
docker compose ps
Добавьте проверку готовности сервису store с короткой паузой 3 секунды между попытками.
Поднимите проект в фоне и отметьте в списке сервисов, когда статус станет healthy.