2017-01-09 9 views
1

Wenn runserver über Docker und Docker-compose läuft, bekomme ich diesen Fehler und ich kann keine Verbindung django:Django Kanäle und Docker-compose Fehler

django_1   | 2017-01-09 08:24:44,328 - INFO - worker - Listening on channels http.request, websocket.connect, websocket.disconnect, websocket.receive 
django_1   | 2017-01-09 08:24:44,329 - INFO - worker - Listening on channels http.request, websocket.connect, websocket.disconnect, websocket.receive 
django_1   | 2017-01-09 08:24:44,331 - INFO - worker - Listening on channels http.request, websocket.connect, websocket.disconnect, websocket.receive 
django_1   | 2017-01-09 08:24:44,331 - INFO - worker - Listening on channels http.request, websocket.connect, websocket.disconnect, websocket.receive 
django_1   | Unhandled exception in thread started by <function wrapper at 0x7ff06bee5d70> 
django_1   | Traceback (most recent call last): 
django_1   | File "/usr/local/lib/python2.7/site-packages/django/utils/autoreload.py", line 226, in wrapper 
django_1   |  fn(*args, **kwargs) 
django_1   | File "/usr/local/lib/python2.7/site-packages/channels/management/commands/runserver.py", line 84, in inner_run 
django_1   | Performing system checks... 
django_1   | 
django_1   | System check identified no issues (0 silenced). 
django_1   | January 09, 2017 - 08:24:44 
django_1   | Django version 1.10.4, using settings 'backend.settings' 
django_1   | Starting Channels development server at http://0.0.0.0:8000/ 
django_1   | Channel layer default (asgi_redis.core.RedisChannelLayer) 
django_1   | Quit the server with CONTROL-C. 
django_1   |  ws_protocols=getattr(settings, 'CHANNELS_WS_PROTOCOLS', None), 
django_1   | File "/usr/local/lib/python2.7/site-packages/daphne/server.py", line 41, in __init__ 
django_1   |  ''' % self.__class__.__name__) 
django_1   | DeprecationWarning: 
django_1   |     The host/port/unix_socket/file_descriptor keyword arguments to Server are deprecated. 
django_1   |    

Wenn lokal ausgeführt wird, ist alles ok läuft. Hier ist meine requirements.txt:

Django == 1.10.4 psycopg2 == 2.6.2 Kanäle == 0.17.3 ASGi-redis == 1.0.0

Und hier ist meine docker-komponieren datei:

version: '2' 
    services: 
    redis: 
     image: redis:3.0-alpine 
    postgres: 
     image: postgres 
    django: 
     build: ../backend 
     command: python backend/manage.py runserver 0.0.0.0:8000 
     volumes: 
      - ../backend:/backend 
     ports: 
      - "8000:8000" 
     depends_on: 
      - postgres 
      - redis 
      - django-migration 
    django-migration: 
     build: ../backend 
     command: python backend/manage.py migrate 
     volumes: 
      - ../backend:/backend 
     depends_on: 
      - postgres 
    client: 
     image: node 
     command: bash -c "cd src && npm start" 
     ports: 
      - "3000:3000" 

Irgendwelche Ideen?

Antwort

1

stellte sich heraus, war ich mit 1.0.0-Version von Seidelbast, mittlerweile habe ich eine alte Version von django Kanäle, und sie sind nicht kompatibel. Bei der Aktualisierung wurde der Fehler behoben.

0

Ihre Container haben keine Verbindung zueinander. Versuche sie zu einem Netzwerk zu vereinigen.

version: '2' 
    services: 
    redis: 
     image: redis:3.0-alpine 
     networks: 
     - django-network 

    postgres: 
     image: postgres 
     networks: 
     - django-network 

    django: 
     build: ../backend 
     command: python backend/manage.py runserver 0.0.0.0:8000 
     volumes: 
      - ../backend:/backend 
     ports: 
      - "8000:8000" 
     depends_on: 
      - postgres 
      - redis 
      - django-migration 
     networks: 
     - django-network 

    django-migration: 
     build: ../backend 
     command: python backend/manage.py migrate 
     volumes: 
      - ../backend:/backend 
     depends_on: 
      - postgres 
     networks: 
     - django-network 

    client: 
     image: node 
     command: bash -c "cd src && npm start" 
     ports: 
      - "3000:3000" 
     networks: 
     - django-network 

    networks: 
     tele-cluster-network: 
     driver: bridge 
+0

Was meinen Sie, sie haben keinen Link zueinander? Ich bin zu 99,9% sicher, dass sie dies tun, da ich über ihren Hostnamen auf alle anderen Hosts in jedem Container zugreifen kann. Und ich habe diese docker-compose Datei mit inmemory asgi erfolgreich ausgeführt, jetzt, da ich redis hinzugefügt habe, verursacht es Probleme. – Nirri

+1

ok, wenn Sie sicher sind, dass die Container verbunden sind, ist meine Antwort falsch. vielleicht, wenn Sie versuchen, mit Redis zu verbinden, hat es nicht begonnen? –

+0

Danke, aber ich habe das Problem in der Zwischenzeit gefunden, ich habe es unten veröffentlicht – Nirri