Docker Django Postgres FATAL: не удалось выполнить аутентификацию пароля для пользователя "postgres
Я докеризирую свое приложение Django. Мои конфигурации следующие:
csgo.env
POSTGRES_NAME='postgres'
POSTGRES_USER='postgres'
POSTGRES_PASSWORD='postgres'
POSTGRES_HOST='postgres_db'
POSTGRES_PORT='5432'
settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': os.getenv('POSTGRES_NAME', 'postgres'),
'USER': os.getenv('POSTGRES_USER', 'postgres'),
'PASSWORD': os.getenv('POSTGRES_PASSWORD', 'postgres'),
'HOST': os.getenv('POSTGRES_HOST', 'postgres_db'),
'PORT': os.getenv('POSTGRES_PORT', '5432'),
}
}
docker-compose.yml
version: '3'
services:
web:
build:
context: .
dockerfile: Dockerfile
env_file:
- csgo.env
ports:
- '8000:8000'
volumes:
- .:/code
depends_on:
- postgres_db
postgres_db:
image: postgres:13
restart: always
ports:
- '5432:5432'
env_file:
- csgo.env
environment:
- POSTGRES_NAME='postgres'
- POSTGRES_USER='postgres'
- POSTGRES_PASSWORD='postgres'
- POSTGRES_HOST='postgres_db'
- POSTGRES_PORT='5432'
Когда я запускаю docker-compose up
, я получаю типичную ошибку auth django.db.utils.OperationalError: FATAL: password authentication failed for user "postgres"
, и меня это очень напрягает. Я уже целый день ищу опечатку, но так и не нашел ее. Пожалуйста, помогите мне найти недостающий кусок кода или опечатку!
Примечание: Я знаю, что подобные вопросы переполнены в Интернете. Мой пост о том, как найти опечатку или механическую ошибку, допущенную мной. Спасибо за понимание и за то, что не посчитали пост дубликатом!
вы должны установить имя базы данных в переменных окружения:
POSTGRES_DB='postgres'