Ошибка подключения к серверу Django с помощью Docker Toolbox в OS X Yosemite - PullRequest
0 голосов
/ 08 марта 2019

Я запускаю следующий файл yml с командой $docker-compose up.Я занимаюсь разработкой REST API с помощью django (Udemy "Создайте Backend REST API с Python и Django - Advanced").

  • Система: OS X 10.10.5
  • Версия докера: 18.03.0-ce
  • Версия для докера: 1,20.1

В: Я не могу получить доступ к localhost с 127.0.0.1

docker-compose.yml

version: "2.2"
services:
  app:
    build:
      context: .
    ports:
      - "8000:8000"
    volumes:
      - ./app:/app
    command: >
      sh -c "python manage.py wait_for_db && 
             python manage.py migrate &&
             python manage.py runserver 0.0.0.0:8000"
    environment:
      - DB_HOST=db
      - DB_NAME=app
      - DB_USER=postgres
      - DB_PASS=supersecretpassword
    depends_on:
      - db
  db:
    image: postgres:10-alpine
    environment:
      - POSTGRES_DB=app
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=supersecretpassword

Dockerfile

FROM python:3.7-alpine

#python unbuffered environmental variable
ENV PYTHONUNBUFFERED 1

#copy requirements.txt from the directory adjacent to
#the Dockerfile into dockerimage/requirments.txt
COPY ./requirements.txt /requirements.txt
RUN apk add --update --no-cache postgresql-client
RUN apk add --update --no-cache --virtual .tmp-build-deps \
        gcc libc-dev linux-headers postgresql-dev
RUN pip install -r /requirements.txt
RUN apk del .tmp-build-deps

#create an empty folder named app in docker image
RUN mkdir /app 
WORKDIR /app
COPY ./app /app

RUN adduser -D user
USER user

Некоторые предлагают добавить CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"] в Dockerfile;не работал в этом случае.В django settings.py, ALLOWED_HOSTS = ['192.168.99.100']

Консольный вывод (часть: см. Жирный шрифт)

Файл "/usr/local/lib/python3.7/site-packages/django/db/backends/postgresql/base.py",строка 178, в get_new_connection connection = Database.connect (conn_params)Файл "/usr/local/lib/python3.7/site-packages/psycopg2/init.py",строка 130, в соединении conn = _connect (dsn, connection_factory = connection_factory, kwasync) django.db.utils.OperationalError: не удалось подключиться к серверу: соединение отклонено ** Сервер работает на хосте "db" (172.19.0.2) и принимает соединения TCP / IP через порт 5432?

Я новичок в этом, благодарю вас за помощь и предложения.

...