Адрес базы в Docker
Адрес базы внутри проекта
строится из имени сервиса,
а не из localhost.
Строка указывает на сервис
db и порт 27017,
где слушает Mongo.
Соседний контейнер
читает её из окружения
и пока лишь печатает,
без открытия соединения
драйвером.
Сервис db
на mongo:8.3
без пароля.
Сервис web
на node:24
получает переменную
MONGO_URL
и коротко выводит её
в консоль:
services:
db:
image: mongo:8.3
web:
image: node:24
environment:
MONGO_URL: mongodb://db:27017/app
command: ["node", "-e", "console.log(process.env.MONGO_URL)"]
Строка mongodb://db:27017/app
содержит имя хоста db,
порт 27017
и имя базы app.
Пакет mongodb
для такой проверки
не обязателен.
Поднимем проект
в фоне:
docker compose up -d
Текст адреса читают
в логах сервиса web:
docker compose logs web
Задайте сервису api переменную MONGO_URL со строкой на сервис db, базу shop и порт 27017 без пароля.
Поднимите проект в фоне и зафиксируйте напечатанную строку адреса в логах api.