Docker-compose не стартует django

при выполнении команды docker-compose up -build возникает ошибка:

Is the server running on host "127.0.0.1" and accepting reglaments_1 | TCP/IP connections on port 5432?

При этом образ собирается и контейнеры запускаются. Но при открытии в браузере по адресу 127.0.0.1:8000 страница не найдена...

Dockerfile:

FROM python:3.9
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
WORKDIR /code
COPY req.txt /code/
RUN pip install -r req.txt
COPY . /code/

docker-compose:

version: "3.9"

services:
  db:
    image: postgres
    restart: always
    volumes:
      - ./data/db:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: Cib3jj7yz123
      
  reglaments:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db

в settings.py:

ALLOWED_HOSTS = ['*']

DATABASES = {
    # 'default': {
    #     'ENGINE': 'django.db.backends.sqlite3',
    #     'NAME': BASE_DIR / 'db.sqlite3',
    # },

    'default': {

        'ENGINE': 'django.db.backends.postgresql_psycopg2',

        'NAME': "ano_rsi_db",

        'USER': "postgres",

        'PASSWORD': "Cib3jj7yz123",

        'HOST': "127.0.0.1",

        'PORT': "5432",

    }

}

в settings.py вы указали 'HOST': "127.0.0.1", что будет отправлять запрос внутри этого же контейнера и в нем не поднят порт 5432. Варианты

  1. пробросить порт 5432 в контейнере db на хост и настроить на IP host переменную 'HOST': "127.0.0.1"
  2. обратиться из контейнера reglaments напрямую в контейнер db по имени (примерно так 'HOST': "db" или задать отдельное имя в services:db:container_name: db-pg и обратиться к нему так: 'HOST': "db-pg")
Вернуться на верх