django runserver зависает в docker-compose, но работает правильно в docker-compose run - PullRequest
0 голосов
/ 19 ноября 2018

Редактировать

Добавление --ipv6 к команде, хотя и не настроено должным образом, похоже, превосходит точку, в которой зависает процесс.

enter image description here

Задача

  • Вызов docker-compose up выполняет runserver, но в какой-то момент зависает после печати текущего времени.

docker-compose up

  • Вызов docker-compose run -p 8000: 8000 web python manage.py runserver 0.0.0.0:8000 также запускает сервер, но делает это успешно и может быть достигнуто в 192.168.99.100:8000.

docker-compose run -p 8000:8000 web python manage.py runserver 0.0.0.0:8000

Вопросы

Почему я могу запустить сервер напрямую из docker-compose в моей оболочке, но не из файла .yml?

Мне кажется, что содержимое файла .yml и строки запуска docker-compose из оболочки поразительно схожи.

Единственное различие, о котором я могу подумать, - это, возможно, разрешения на каком-то уровне, необходимые для правильного запуска сервера django, но я не знаю, как с этим справиться. Docker работает на машине с Windows 8.1. Общая папка для моей виртуальной машины по умолчанию - c: \ Users.

Файлы

Моя папка содержит свежий проект django, а также файлы Docker. Я вмешивался в разные версии Python и Django, но результат тот же. Я очищал свои изображения и контейнеры между попытками, используя

docker rm $(docker ps -a -q)
docker rmi $(docker images -q)

докер-compose.yml

version: '3'
services:
    web:
        build: .
        command: python manage.py runserver 0.0.0.0:8000
        volumes:
            - .:/code
        ports:
            - "8000:8000"

Dockerfile

FROM python:3.6-alpine
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/

requirements.txt

Django>=1.8,<2.0

System

Моя операционная система - Windows 8.1

.

1 Ответ

0 голосов
/ 24 января 2019

У меня была такая же проблема, и я не мог заставить ее сделать что-нибудь еще.Однако, когда я перешел на ip док-машины docker-machine ip, он вернул 192.168.99.100, затем, перейдя к 192.168.99.100:8000, мой докер-контейнер начал получать запросы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...