Как исправить django.db.utils.OperationalError: could not translate host name "db" to address: Временный сбой в разрешении имен

Видел, что этот вопрос уже задавался, но все еще нет решения, работающего для меня.

Мой docker-compose:

version: '3.9'

services:
  db:
    image: postgres
    volumes: 
      - ./data/db:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=postgres
      - POSTGREES_PASSWORD=password

  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/books
    ports:
      - "8000:8000"
    depends_on:
      - db

my requirements.txt

Django>=3.2
psycopg2-binary>=2.8

my settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER' : 'postgres',
        'PASSWORD' : 'postgres',
        'HOST' : 'db',
        'PORT' : 5432,
    }
}

мой dockerfile:

FROM python:3
ENV PYTHONUNBUFFERED=1
WORKDIR /books
COPY requirements.txt /books/
RUN pip install -r requirements.txt
COPY . /books/

ошибка, которая отображается на моем терминале

File "/usr/local/lib/python3.10/site-packages/psycopg2/__init__.py", line 122, in connect
web_1  |     conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
web_1  | django.db.utils.OperationalError: could not translate host name "db" to address: Temporary failure in name resolution
Вернуться на верх