Образ 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"
Вернуться на верх