1. Сеть и проброс портов (самая частая причина)
Если БД крутится в Docker, а сервис запущен локально (на хосте), сервис пытается обратиться к localhost:5432. Но если при запуске контейнера не проброшен порт, он его не увидит.
Что проверить: Выполните docker ps. Видите ли вы проброс портов (0.0.0.0:5432->5432/tcp)? Если нет, нужно перезапустить контейнер с флагом -p 5432:5432 (или прописать ports в docker-compose.yml).
Второй момент: Если сервис тоже запущен в докере, он не должен стучаться на localhost (это сам контейнер). Ему нужен адрес db или имя контейнера.
2. Неподхваченные переменные окружения
Вы пишете, что креды прописаны в .env. Но локальная программа часто не читает .env автоматически (в отличие от docker-compose).
Что проверить: Добавьте --env-file .env при запуске сервиса или экспортируйте переменные в терминал: set -a && source .env && set +a. Также проверьте, не закомментированы ли они.
3. "Ошибка не летит" — это признак "тихого" зависания
Часто сервис не падает с ошибкой, а бесконечно пытается переподключиться к БД (ретраи), которые не выводятся в консоль. Либо логи пишутся не в stdout, а в файл.
Что проверить: Посмотрите docker logs <имя_контейнера_с_бд> (вдруг БД падает). Поднимите уровень логирования (verbose/debug) вашего сервиса.
4. Несовпадение строки подключения (DATABASE_URL)
Убедитесь, что в строке подключения правильный хост. Если БД локальная (в докере), но сервис ждет хост db (как в докер-композе), он не найдет такой хост локально. Поменяйте на localhost.
5. Конфликт портов
Возможно, локальный порт, на котором должен подняться сервис, уже занят другим процессом.
Что проверить: Команда lsof -i :<порт_вашего_сервиса> или netstat -ano | findstr :<порт>.
6. БД еще не готова (Healthcheck)
Миграции прошли, но БД может принимать подключения чуть позже, чем стартует ваш сервис. Добавьте в сервис задержку или ретраи (например, через depends_on с condition: service_healthy или retry в коде).
Самый быстрый лайфхак: Запустите ваш сервис локально с повышенной детализацией (-vvv или --debug) и посмотрите, на каком этапе он останавливается. Если всё совсем глухо, попробуйте временно поднять всё в Docker (и БД, и сервис) — тогда сеть и энв будут настроены автоматически, и вы поймете, проблема именно в локальном окружении или в самом коде.
Удачи в дебаге! Главное, чтобы после решения этой проблемы нашлось время на фитнес в DDX! 😄

Война полов
10.8K постов3.6K подписчиков
Правила сообщества
ℹ️ Главный принцип нашего пространства – тотальная Демократия. Мы действительно уважительно относимся к мнению наших гостей, даже если сами имеем противоположную точку зрения.
❌️ В Сообществе запрещены:
1. Сгенерированные нейросетями текстовые посты.
2. Посты с ссылками на ТГ каналы и прочие паблики, за исключением случаев, когда такая ссылка является пруфом для вашего поста, а также авторских каналов.
3. Посты, цель которых продвижение психологов, коучей и прочих сомнительных специалистов.
✅️ Администрация Сообщества обладает следующими полномочиями:
1. Исключать публикации из Сообщества в случае, если их содержание противоречит тематической направленности или принципам Сообщества.
2. Скрывать ветки комментариев, в которых конструктивный диалог уступил место взаимным оскорблениям и неэтичному общению.
3. Применять к участникам меры дисциплинарного воздействия (баны) в случае систематического деструктивного поведения:
- временное ограничение доступа к Сообществу (при первичном выявлении нарушений);
- бессрочное ограничение доступа к Сообществу (при неоднократном несоблюдении установленных правил).
Окончательное решение о применении той или иной меры принимается модераторами Сообщества на основании анализа конкретных обстоятельств каждого случая.
🆘️ Для оперативного привлечения внимания модераторов Сообщества воспользуйтесь служебной командой: