簡體   English   中英

Dockerized Django REST Framework / Postgresql-不允許的主機

[英]Dockerized Django REST Framework / Postgresql - Disallowed host

當我嘗試執行以下命令時:

sudo docker-compose up

我在終端中收到以下錯誤:

在此處輸入圖片說明

這是我的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 DB的設置:

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

您的django應用正在嘗試連接到“本地主機”數據庫,但由於它位於其自己的容器內-本地主機不適合訪問數據庫。

如果您是通過db容器名稱引用的,則Dockercompose會將您的名稱查詢解析為數據庫。 您的情況是“ db”

閱讀圖片上的文字時-您必須在設置模塊內的ALLOWED_HOSTS變量中添加“ 0.0.0.0”。

確保您已仔細閱讀django文檔。 它非常有活力。

該錯誤很容易解釋。.您未在ALLOWED_HOSTS設置中設置 IP。 嘗試將這些添加到您的設置文件:

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

或者,如果您想露骨:

ALLOWED_HOSTS = ['0.0.0.0'] # explicit

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM