Could not translate host name "db" to address: Temporary failure in name resolution

Не поднимается база что ли , не могу понять что с ней не так.

could not translate host name "db" to address: Temporary failure in name resolution

Django settings

DATABASES = {
'default': {
    'ENGINE': 'django.contrib.gis.db.backends.postgis',
    'NAME': os.environ.get('POSTGRES_DB', 'neighbors'),  # noqa: F405
    'USER': os.environ.get('POSTGRES_USER', 'neighbors_user'),  # noqa: F405
    'PASSWORD': os.environ.get('POSTGRES_PASSWORD'),  # noqa: F405
    "HOST": os.environ.get('DATABASE_HOST', 'db'),  # noqa: F405
    "PORT": int(os.environ.get('DATABASE_PORT', 5432)),  # noqa: F405
    }
}

.env

POSTGRES_USER=neighbors_user
POSTGRES_USER=neighbors_user
POSTGRES_PASSWORD=neighbors_pass
POSTGRES_DB=neighbors
PGDATA=/var/lib/postgresql/data

DATABASE_PORT=5432
DATABASE_HOST=db

docker-compose

db:
build:
  context: .
  dockerfile: docker/postgis/Dockerfile
image: neighbors_db:latest
restart: always
env_file: .env
volumes:
  - ./pg_data:/var/lib/postgresql/data
ports:
  - "5439:5432"

Это происходит, потому что db не является адресом в сети. Попробуйте в качестве аргумента по умолчанию указать 'localhost' или '127.0.0.1'. Вот есть пример в документации:

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

Как можно тут заметить, ключу PORT соответстует конкретный адрес в сети.

Также в документации есть информация по подключению Postgis.

Вернуться на верх