我的服务器没有响应,它挂了,没有返回任何东西

My server is not responding, it is hanging up, did not returning anything

我在 mac 上成功构建了一个 docker 图像。我通过输入 docker 运行 -p 8000:8000 来 运行 这张图片。 Django 服务器已启动并准备好接受请求。但是当我通过邮递员请求给定 URL 时,我收到一个错误:套接字挂断。 这是我的 docker 文件。

FROM python:3.6-slim-stretch
ENV PYTHONUNBUFFERED 1
WORKDIR /app

COPY requirements.txt requirements.txt

RUN apt-get -y update
RUN apt-get install -y --fix-missing \
    build-essential \
    cmake \
    gfortran \
    git \
    wget \
    curl \
    graphicsmagick \
    libgraphicsmagick1-dev \
    libatlas-base-dev \
    libavcodec-dev \
    libavformat-dev \
    libgtk2.0-dev \
    libjpeg-dev \
    liblapack-dev \
    libswscale-dev \
    pkg-config \
    python3-dev \
    python3-numpy \
    software-properties-common \
    zip \
    && apt-get clean && rm -rf /tmp/* /var/tmp/*

RUN cd ~ && \
    mkdir -p dlib && \
    git clone -b 'v19.9' --single-branch https://github.com/davisking/dlib.git dlib/ && \
    cd  dlib/ && \
    python3 setup.py install --yes USE_AVX_INSTRUCTIONS
RUN pip3 install --default-timeout=100 future
RUN pip3 install -r requirements.txt
COPY . .
CMD python3 manage.py makemigrations face && python3 manage.py migrate && python3 manage.py runserver

同样响应服务器的浏览器没有发送数据。 请帮助我。

Django 的 runserver 命令默认侦听 127.0.0.1(环回接口),因为它用于开发,而不是生产。

为了-p可以从 Docker 容器向外界发布内容,它需要监听 0.0.0.0,即所有接口。

将其添加到您的 runserver 调用...

CMD python3 manage.py migrate && python3 manage.py runserver 0.0.0.0:8000