Образ Docker запущен для Django, но не удается получить доступ к url сервера dev
Работаю над контейнеризацией своего сервера. Я считаю, что я успешно запустил сборку, когда я запускаю docker-compose, мой сервер разработки кажется запущенным, но когда я пытаюсь посетить связанный URL сервера разработки:
http://0.0.0.0:8000/
Однако, я получаю страницу с ошибкой:
This site can’t be reachedThe webpage at http://0.0.0.0:8000/ might be temporarily down or it may have moved permanently to a new web address.
Вот настройки в моем Dockerfile:
FROM python:3
ENV PYTHONUNBUFFERED 1
WORKDIR C:/Users/15512/Desktop/django-project/peerplatform
COPY requirements.txt ./
RUN pip install -r requirements.txt
COPY . ./
EXPOSE 8000
CMD ["python", "./manage.py", "runserver", "0.0.0.0:8000", "--settings=signup.settings"]
Это мой docker-compose.yml
файл:
version: "3.8"
services:
redis:
restart: always
image: redis:latest
ports:
- "49153:6379"
pairprogramming_be:
restart: always
depends_on:
- redis
command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
env_file:
- ./signup/.env
- ./payments/.env
- ./.env
build:
context: ./
dockerfile: Dockerfile
ports:
- "8000:8001"
container_name: "pairprogramming_be"
volumes:
- "C:/Users/15512/Desktop/django-project/peerplatform://pairprogramming_be"
working_dir:
"/C:/Users/15512/Desktop/django-project/peerplatform"
Это файл .env:
DEBUG=1
DJANGO_ALLOWED_HOSTS=0.0.0.0
FYI: образ redis запущен успешно. Вот что я пробовал:
- Я попробовал изменить разрешенные хосты на localhost и 127.0.0.0.1
- Я попробовал выполнить команду
python manage.py runserver
и в итоге добавил0.0.0.0:8000
- Когда я запускаю
docker inspect --format '{{ .NetworkSettings.IPAddress }} pairprogramming_be
, я получаю пустой ответ/моему контейнеру docker не присвоен IP-адрес .
откуда взят порт 8001
? Это внутренний (ожидаемый) порт прослушивания. Поскольку вы настроили ваше приложение (внутри docker) на прослушивание на 8000
, вы должны сопоставить его с 8000
на любой другой...
просто измените compose на:
ports:
- "8000:8000"