Главная/Материалы/Материал

Симптом

docker compose up — приложение падает с ошибкой подключения, перезапускается, на второй или третий раз стартует. На быстрой машине проблема «не воспроизводится».

bash
docker compose up -d
sleep 3
docker compose logs app | head -10
docker compose ps
text
app-1  | подключаюсь к db:5432
app-1  | не удалось подключиться: [Errno 111] Connection refused
app-1  | подключаюсь к db:5432
app-1  | подключение установлено

Проверка воспроизводимости — десять запусков из чистого состояния:

bash
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.

Markdown на GitHub ↗