Докеризация Django с PostgreSQL. FATAL: аутентификация пароля для пользователя "postgres" не удалась

Я пытаюсь докеризировать мое приложение Django с его базой данных PostgreSQL.

У меня есть следующие файлы конфигурации: docker-compose.yml

version: '3'

services:
  web:
    container_name: web
    build:
      context: .
      dockerfile: Dockerfile
    env_file:
      - csgo.env
    environment:
      - POSTGRES_NAME=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
    ports:
      - '8000:8000'
    volumes:
      - .:/code
    depends_on:
      - postgres_db

  postgres_db:
    container_name: postgres_db
    image: postgres:13
    env_file:
      - csgo.env
    environment:
      - POSTGRES_DB='postgres'
      - POSTGRES_NAME='postgres'
      - POSTGRES_USER='postgres'
      - POSTGRES_PASSWORD='postgres'
      - POSTGRES_HOST='postgres_db'
      - POSTGRES_PORT='5432'
    ports:
      - '5432:5432'

csgo.env

POSTGRES_DB='postgres'
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': 'postgres',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': 'postgres_db',
        'PORT': '5432',
    }
}

Я получаю наиболее типичную ошибку:

web          |   File "/usr/local/lib/python3.9/site-packages/psycopg2/__init__.py", line 122, in connect
web          |     conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
web          | django.db.utils.OperationalError: FATAL:  password authentication failed for user "postgres"
web          | 

В чем проблема? Что я пропустил? Почему возникает эта ошибка, если все работает нормально?

Примечание: Я знаю, что этот вопрос популярен в Интернете. Но ни у кого из них нет ответа на мой вопрос. Потому что мой вопрос, вероятно, связан с ошибкой, которую я совершил (или с типом) и которую я не могу понять уже целый день. Пожалуйста, помогите!

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