Docker Postgresql Django Error - django.db.utils.OperationalError: could not translate host name "db" to address: Временный сбой в разрешении имен

Я пытался развернуть приложение docker django postgresql.

docker-compose.prod.yml

...
services:
  web:
    build: 
      context: .
      dockerfile: Dockerfile.prod
    restart: always
    container_name: web
    command: gunicorn django_app.wsgi:application --bind 0.0.0.0:80
    volumes:
      - static_volume:/static
      - media_volume:/media
    expose:
      - 80
    env_file:
      - ./.env.prod
    depends_on:
      - db

  db:
    image: postgres:13.4-alpine
    container_name: db
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    env_file:
      - ./.env.db
...

.env.db

POSTGRES_USER=user1
POSTGRES_PASSWORD=password1
POSTGRES_DB=prod_db

.env.prod

...
SQL_ENGINE=django.db.backends.postgresql
SQL_DATABASE=prod_db
SQL_USER=user1
SQL_PASSWORD=password1
SQL_HOST=db
SQL_PORT=5432
DATABASE=postgres
...

settings.py

...

DATABASES = {
    'default': {
        "ENGINE": os.environ.get("SQL_ENGINE", "django.db.backends.sqlite3"),
        "NAME": os.environ.get("SQL_DATABASE", os.path.join(BASE_DIR, "db.sqlite3")),
        "USER": os.environ.get("SQL_USER", "user"),
        "PASSWORD": os.environ.get("SQL_PASSWORD", "password"),
        "HOST": os.environ.get("SQL_HOST", "localhost"),
        "PORT": os.environ.get("SQL_PORT", "5432")       
    }
}
...

Полное сообщение об ошибке

web      |   File "/usr/local/lib/python3.8/site-packages/psycopg2/__init__.py", line 122, in connect
web      |     conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
web      | django.db.utils.OperationalError: could not translate host name "db" to address: Temporary failure in name resolution

Попытки решения:

  • тестирование с различными версиями образа postgresql.
  • установка POSTGRES_HOST_AUTH_METHOD на пароль и доверие без успеха.
  • многократно меняя пароль и имя пользователя
  • .
  • изменение имени базы данных
  • добавление 'restart: always' к 'web' в docker-compose

Есть ли у вас идеи, что требуется для устранения этой ошибки? Если вам нужна более подробная информация о моей кодовой базе docker для решения этой проблемы, пожалуйста, дайте мне знать.

Спасибо

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