Dockerized Django REST Framework / Postgresql - запрещенный хост - PullRequest
0 голосов
/ 01 мая 2018

Когда я пытаюсь выполнить следующую команду:

sudo docker-compose up

Я получаю следующую ошибку в моем терминале:

enter image description here

Вот как выглядит мой файл Docker:

FROM python:3.6

ENV PYTHONUNBUFFERED 1
RUN mkdir /agent-technologies
WORKDIR /agent-technologies
COPY . /agent-technologies 
RUN pip install -r requirements.txt

EXPOSE 8000

Вот как выглядит мой docker-compose.yml:

version: '3'

services:
  db:
    image: postgres
    environment:
      - POSTGRES_USER=stefan_radonjic
      - POSTGRES_PASSWORD=cepajecar995
      - POSTGRES_DB=agent_technologies_db
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes: 
      - .:/agent-technologies
    ports: 
      - "8000:8000"
    links:
      - db
    depends_on:
      - db

И, наконец, вот настройки БД PostgresSQL, которые я ранее создал:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'agent_technologies_db',
        'USER': 'stefan_radonjic',
        'PASSWORD': 'cepajecar995',
        'HOST': 'db',
        'PORT': '',
    }
}

Ответы [ 2 ]

0 голосов
/ 01 мая 2018

Ошибка очевидна .. Вы не установили свой ip в настройке ALLOWED_HOSTS . Попробуйте добавить их в файл настроек:

ALLOWED_HOSTS = ['*'] # wildcard, allows all

Или, если вы хотите быть явным:

ALLOWED_HOSTS = ['0.0.0.0'] # explicit
0 голосов
/ 01 мая 2018

Ваше приложение django пытается подключиться к базе данных 'localhost', но, поскольку оно находится внутри своего собственного контейнера, localhost не подходит для доступа к базе данных.

Dockercompose преобразует ваши запросы имен в базу данных, если вы будете обращаться по имени контейнера db. В вашем случае это "дБ"

Поскольку текст на картинке читается - вы должны добавить «0.0.0.0» в переменную ALLOWED_HOSTS внутри модуля настроек.

Убедитесь, что вы внимательно прочитали документацию django. Это довольно энергично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...