django ошибка подключения к бд в docker

я сделал небольшую api на drf, но при запуске возникает ошибка

FROM python:3.11.9-alpine

ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1

# Устанавливаем обновления и необходимые модули
RUN apk update && apk add libpq
RUN apk add --virtual .build-deps gcc python3-dev musl-dev postgresql-dev

# Обновление pip python
RUN pip install --upgrade pip

# Установка пакетов для проекта
COPY requirements.txt ./requirements.txt
RUN pip install -r requirements.txt

WORKDIR /app

# Удаляем зависимости билда
RUN apk del .build-deps

# Копирование проекта
COPY . .

# Настройка записи и доступа
RUN chmod -R 777 ./

docker-compose:

version: '3.8'

volumes:
  pgdata:
  static:
  media:

services:
  db:
    image: postgres:alpine
    container_name: db
    restart: always
    volumes:
      - pgdata:/var/lib/postgresql/data/
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=qwerty
      - POSTGRES_DB=remnovo

  django:
    build:
      context: .
    ports:
      - '8000:8000'
    container_name: django
    env_file:
      - ./docker/env/.env.dev
    volumes:
      - ./:/app
      - static:/app/static
      - media:/app/media
    depends_on:
      - db
    command: python manage.py runserver 0.0.0.0:8000

  nginx:
    container_name: nginx
    working_dir: /app
    image: nginx:stable-alpine
    restart: always
    ports:
      - "80:80"
    volumes:
      - static:/app/static
      - media:/app/media
      - ./docker/nginx/dev/:/etc/nginx/conf.d:ro
    links:
      - django
    depends_on:
      - django



что я сделал не так? Ошибка:

django  | django.db.utils.OperationalError: connection to server at "db" (172.18.0.2), port 5432 failed: FATAL:  password authentication failed for user "postgres"

settings.py:

DATABASES = {
    'default': {
        'ENGINE': env("DB_ENGINE"),
        'NAME': env("DB_NAME"),
        'USER': env("DB_USER"),
        'PASSWORD': env("DB_PASSWORD"),
        'HOST': env("DB_HOST"),
        'PORT': env("DB_PORT"),
    }
}

.env.prod:

DB_ENGINE=django.db.backends.postgresql
DB_NAME=remnovo
DB_USER=postgres
DB_PASSWORD=qwerty
DB_HOST=db
DB_PORT=5432

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

Автор решения: argenalmaz00

Измените код settings.py

DATABASES = {
    'default': {
        'ENGINE': getenv("DB_ENGINE"),
        'NAME': getenv("DB_NAME"),
        'USER': getenv("DB_USER"),
        'PASSWORD': getenv("DB_PASSWORD"),
        'HOST': getenv("DB_CONNECT"), # место db_host на db_connect 
        'PORT': getenv("DB_PORT"),
    }
}

Исправил DB_HOST значения 0.0.0.0

Добавил DB_CONNECT с значение 192.168.10.4

.env

DB_ENGINE=django.db.backends.postgresql
DB_NAME=remnovo
DB_USER=postgres
DB_PASSWORD=qwerty
DB_HOST=0.0.0.0
DB_PORT=5432
DB_CONNECT=192.168.10.4

Добавил yml,Сгенерировать сеть и выдал кажды контенер ip-address и поставил первые postgres

docker-compose

version: '3.8'

volumes:
  pgdata:
  static:
  media:

services:

  postgres:
    image: postgres:alpine
    container_name: postgres
    restart: always
    env_file:
      - docker/env/.env.dev
    volumes:
      - pgdata:/var/lib/postgresql/data/
    environment:
      POSTGRES_PASSWORD: example
  redis:
    image: redis:alpine
    container_name: redis
    env_file:
      - docker/env/.env.dev
    expose:
      - 6379
    volumes:
      - ./docker/redis/data:/data
    
    networks:
      mynetwork:
        ipv4_address: 192.168.10.4

  django:
    build:
      context: .
    ports:
      - '8000:8000'
    container_name: django
    env_file:
      - docker/env/.env.dev
    volumes:
      - ./:/app
      - static:/app/static
      - media:/app/media
    depends_on:
      - postgres
      - redis
    networks:
      mynetwork:
        ipv4_address: 192.168.10.2

    command: sh -c "python3 manage.py collectstatic --no-input &&
                    python3 manage.py makemigrations &&
                    python3 manage.py migrate &&
                    python3 manage.py runserver 0.0.0.0:8000"

  nginx:
    container_name: nginx
    working_dir: /app
    image: nginx:stable-alpine
    restart: always
    ports:
      - "80:80"
    volumes:
      - static:/app/static
      - media:/app/media
      - ./docker/nginx/dev/:/etc/nginx/conf.d:ro
    links:
      - django
    depends_on:
      - django
    
    networks:
      mynetwork:
        ipv4_address: 192.168.10.3
   

networks:
  mynetwork:
    driver: bridge
    ipam:
      config:
        - subnet: 192.168.10.0/24
          gateway: 192.168.10.1
→ Ссылка