Симптом
docker compose up — приложение падает с ошибкой подключения, перезапускается, на второй или третий раз стартует. На быстрой машине проблема «не воспроизводится».
docker compose up -d
sleep 3
docker compose logs app | head -10
docker compose ps
app-1 | подключаюсь к db:5432
app-1 | не удалось подключиться: [Errno 111] Connection refused
app-1 | подключаюсь к db:5432
app-1 | подключение установлено
Проверка воспроизводимости — десять запусков из чистого состояния:
for i in $(seq 10); do
docker compose down -v >/dev/null 2>&1
docker compose up -d >/dev/null 2>&1
sleep 4
printf '%2d: %s\n' "$i" "$(docker compose ps app --format '{{.Status}}')"
done
Задача. Объяснить, что именно гарантирует depends_on в этой форме, и исправить. Затем ответить на второй вопрос: что останется неисправленным даже после правильного depends_on.
Разбор: challenge 15.