Я запускаю следующий файл 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?
Я новичок в этом, благодарю вас за помощь и предложения.