Ваш комментарий на самом деле является большой подсказкой: «Это команда, которую я использовал (как я вижу, я использовал« зависящий_он », чтобы убедиться, что база данных требуется перед API). Ошибка: SequelizeConnectionRefusedError: connect ECONNREFUSED 127.0 .0.1: 5432 Чего я не понимаю: документы docker не обновлены? "
Похоже, ваш контейнер API пытается выстрелить в localhost вместо db: 5432 (как вы указал, что db - это DNS-имя, и маловероятно, что оно преобразуется в 127.0.0.1 (IP зарезервирован для localhost)
Быстрая отладка: run: docker exe c -it sh (в контейнер) apk добавить busybox-extras, а затем: te lnet 127.0.0.1 5432 -> вы увидите, что это недостижимо, однако te lnet db 5432 -> это прекрасно, кроме того, вы можете запустить nslookup db -> как мы уже установили, это имя DNS (db) должно быть разрешено
Я попытался добавить network_mode: host к api (в docker -compose.yml), но это заставляет ваше приложение создавать sh. На данный момент я Я рекомендую просмотреть код для API и найти любые ссылки на 127.0.0.1:5432 Если вы запустите docker exe c -it sh и затем: printenv Вы увидите, что переменная среды DB_URL установлена в: postgresql: // postgres:jy95@db: 5432 / sourcecode, но вы уверены, что этот ENV-VAR используется API? (возможно Вы прокомментировали некоторый код в качестве примера, и Вы все еще используете другую строку подключения)