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.