Django频道和docker-compose错误

时间:2017-01-09 07:33:29

标签: django docker redis docker-compose django-channels

当通过docker和docker-compose运行runserver时,我收到此错误,我无法连接到django:

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"

在本地运行时,一切运行正常。 这是我的要求.txt:

  

的Django == 1.10.4   psycopg2 == 2.6.2   渠道== 0.17.3   ASGI-redis的== 1.0.0

这是我的docker-compose文件:

MAIL_DRIVER=smtp
MAIL_HOST=asmtp.unoeuro.com
MAIL_PORT=587
MAIL_USERNAME=hello@google.com
MAIL_PASSWORD=********
MAIL_ENCRYPTION=tls

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

原来我使用的是daphne的1.0.0版本,同时我使用的是旧版django频道,但它们不兼容。更新两者修复了错误。

答案 1 :(得分:0)

您的容器之间没有相互链接。尝试将它们联合起来联网。

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