Docker, NestJs не получается соединить с postgres

У меня не получается из сервиса backend получить доступ к postgres. Проверял pgadmin, он успешно работает с postgres, с этим проблем нет (то есть postgres успешно запущен). Но вот NestJs не может связаться с postgress. Я пробовал локально запустить NestJs, а postgress и pgadmin в докере, в таком варианте NestJs имеет доступ к postgres. Но внутри контейнера не получается связаться.
Я даже указал depends_on: -postgres , ничего не работает.

С чем может быть связана ошибка?

Пример ошибки стандартный, что нет связи с postgres:

backend  | [Nest] 31  - 03/06/2024, 3:23:52 PM
ERROR [TypeOrmModule] Unable to connect to the database. Retrying (1)...

docker-compose.yml

version: "3.9"

services:
  postgres:
    container_name: chat
    image: postgres:16.2
    env_file:
      - ./api-chat/.env
    volumes:
      - ./api-chat/postgres_data:/var/lib/postgresql/data/
    ports:
      - "5432:5432"

  pgadmin:
    container_name: pgadmin
    image: dpage/pgadmin4:8.3
    environment:
      PGADMIN_DEFAULT_EMAIL: [email protected]
      PGADMIN_DEFAULT_PASSWORD: root
    ports:
      - "5050:80"

  backend:
    container_name: backend
    build:
      context: ./api-chat
      dockerfile: Dockerfile
    depends_on:
      - postgres
    restart: always
    env_file:
      - ./api-chat/.env
    command: npm run start:dev
    volumes:
      - ./api-chat:/docker-backend
    ports:
      - "3000:3000"

Dockerfile

# Use the official Node.js image
FROM node:18.14.0

# Set the working directory
WORKDIR /usr/src/docker-backend

# Копирование package.json to the container
COPY ./package.json .

# Если package-lock.json существует, копировать его в контейнер
COPY ./package-lock.json* .

# Установка зависимостей
RUN npm install

# Установка global nest cli
RUN npm install -g @nestjs/cli

# Копирование остальных файлов приложения в контейнер
COPY . .

Ответы (1 шт):

Автор решения: Михаил Камахин

Проблема была в том, что в .env файле адрес для postgres я указывал localhost, а нужно было указывать имя контейнера с postgres

→ Ссылка