尝试使用Docker与Django但服务器无法启动

时间:2017-10-19 15:13:05

标签: django docker

我正在尝试在Windows 10上使用Docker启动Django应用程序。我在这里关注快速入门教程:

https://docs.docker.com/compose/django/#connect-the-database

当它到达docker-compose up部分时,为了实际启动应用程序,它会被卡住。

这是docker-compose.yml:

version: '3'

services:
  db:
    image: postgres
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db

这是Dockerfile:

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

当我使用docker-compose up时,它会卡在:

web_1  | Performing system checks...
web_1  |
web_1  | System check identified no issues (0 silenced).

4 个答案:

答案 0 :(得分:0)

我想我遇到了类似的问题。我发现我需要在composeexample / settings.py中将主机ip添加到ALLOWED_HOSTS。例如

ALLOWED_HOSTS = [u'10.122.14.13']

答案 1 :(得分:0)

对于遇到类似问题的人,我通过在界面上运行docker解决了这个问题。

可能因为DB花了很长时间才开始或类似的事情而陷入困境。

答案 2 :(得分:0)

我遇到了同样的问题,我发现这是由 *** Settings *** Library DateTime *** Variables *** ${UTC_OFFSET} - 5 hours ${LOCAL_TIME_ZONE} -05:00 ${LOCAL_DATE_FORMAT} %m/%d/%Y *** Test Cases *** Test title ${Supplied_Date}= DateTime.Get Current Date time_zone=UTC increment=${UTC_OFFSET} result_format=%Y-%m-%d %H:%M:%S Log ${Supplied_Date} console=true ${Supplied_Date} DateTime.convert date ${Supplied_Date} result_format=%Y-%m-%d %H:%M:%S exclude_millis=${True} date_format=${LOCAL_DATE_FORMAT} %I:%M:%S %p Log ${Supplied_Date} console=true 文件中的错误引起的。

上次停止服务器后,我添加了一个Model类(只是忘了它)而没有运行服务器。下次启动服务器时,我遇到了您的问题,但是搜索Web毫无用处,因为我的项目设置一切正常(这通常会导致此类错误)。

然后我提到在上一次更改之后我没有应用迁移,所以我运行了命令:

models.py

它告诉我新的Model声明中有错误。 它导致服务器停止响应。我不知道为什么它会以这种方式工作而不是在浏览器或控制台中显示错误消息,但这就是事实。我修复它,服务器开始响应。我希望这会对某人有所帮助。

答案 3 :(得分:0)

我遇到了同样的问题,但是我找到了一种解决方法来运行它。

在您的Django settings.py中将ALLOWED_HOST更改为 ALLOWED_HOST = ['*'],因此Django将允许每个主机访问该应用。

最后,当您启动Docker Quickstart Terminal时,它会显示default machine with IP 192.168.XX.XX。运行docker-compose up,您可以找到在IP:192.168.XX.XX:8000上运行的Django应用。

不用担心docker-compose up不会被卡住,只是它没有回显任何Django输出。