Не удается подключить django к postgres, работающему внутри контейнера docker

#django #postgresql #docker-compose

Вопрос:

Мое приложение django не докеризовано, но я запускаю postgres внутри контейнера docker с помощью docker-compose.yml скрипта. После docker-compose up того, как я смогу подключиться к бд с помощью dbeaver, но не с помощью приложения django. Каждый раз, когда я получаю сообщение об ошибке:

 django.db.utils.OperationalError: could not translate host name "db" to address: 
Temporary failure in name resolution
 

Файл docker-compose.yml :

 version: "3.9"
services:
  db:
    image: postgres:13
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    environment:
      - "POSTGRES_HOST_AUTH_METHOD=trust"
      - POSTGRES_USER="postgres"
      - POSTGRES_PASSWORD="postgres"
      - POSTGRES_DB="postgres"
    ports:
      - 5432:5432
volumes:
  postgres_data
 

Файл проекта Django config/settings.py :

 ...
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': env.str("DB_NAME"),
        'USER': env.str("DB_USER"),
        'PASSWORD': env.str("DB_PASS"),
        'HOST': env.str("DB_HOST"),
        'PORT': env.decimal("DB_PORT")
    }
}
 

Ответ №1:

Это была какая-то ошибка pipenv. Когда я перезапустил терминал и запустил pipenv shell его снова, а затем python manage.py runserver все работало просто отлично