为什么django-daphne无法与docker一起使用?

我为我的django应用程序提供了本地&生产docker-compose服务,在本地服务中一切正常,但是在生产服务daphne中不起作用,同样,redis连接等于并且我没有使用我的docker compos服务的特殊网络配置。

本地撰写:

version: "3"
services:

    app:
        image: app
        build:
            context: .
            dockerfile: ./compose/local/Dockerfile
        environment:
            - DJANGO_SETTINGS_MODULE=psvt.settings.local
        volumes: 
            - ".:/django/"
        ports:
            - "8000:8000"
        depends_on:
            - redis
            - db
        links: 
            - redis:redis
            - db:postgres

    redis:
        image: redis
        restart: always
        expose:
            - '6379'

    daphne:
        restart: always
        image: "app:latest"
        working_dir: /django/
        command: bash -c "daphne -b 0.0.0.0 -p 8001 psvt.asgi:channel_layer"
        ports:
            - "8001:8001"
        environment:
            - REDIS_HOST=redis
            - DJANGO_SETTINGS_MODULE=psvt.settings.local
        depends_on:
            - redis
        links:
            - redis

    db:
        image: postgres:10.1-alpine
        volumes:
            - postgres_data:/var/lib/postgresql/data/
        expose: 
            - "5432"

volumes:
    postgres_data:

生产:(此处达芙妮不起作用)

version: "3"
services:
    app:
        image: app_production
        build:
            context: .
            dockerfile: ./compose/production/Dockerfile
        #command: bash -c "gunicorn psvt.wsgi:application --bind 0.0.0.0:8000"
        command: bash -c "./manage.py runserver"
        working_dir: /django/
        environment:
            - DJANGO_SETTINGS_MODULE=psvt.settings.production
        volumes: 
            - ".:/django/"
            - static_files:/static/
            - media_files:/media/
        ports:
            - "8000:8000"
        depends_on:
            - redis
            - db
        links: 
            - redis:redis
            - db:postgres

    daphne:
        restart: always
        image: "app_production:latest"
        working_dir: /django/
        command: bash -c "daphne -b 0.0.0.0 -p 8001 psvt.asgi:channel_layer"
        ports:
            - "8001:8001"
        environment:
            - REDIS_HOST=redis
            - DJANGO_SETTINGS_MODULE=psvt.settings.production
        depends_on:
            - redis
        links:
            - redis

    redis:
        image: redis
        restart: always
        expose:
            - '6379'

    db:
        image: postgres:10.1-alpine
        volumes:
            - postgres_data:/var/lib/postgresql/data/
        expose: 
            - "5432"

    nginx:
        build: 
            context: ./compose/nginx/
            dockerfile: ./Dockerfile
        ports:
            - 100:80
            - 5000:80
        links:
            - app:app
        volumes:
            - static_files:/static/
            - media_files:/media/
        depends_on:
            - app

volumes:
    postgres_data:
    static_files:
    media_files:

错误是:

Error trying to receive messages: Error -2 connecting to redis:6379. Name or service not known.
a2969318 回答:为什么django-daphne无法与docker一起使用?

尝试使用networks关键字代替links

https://docs.docker.com/compose/compose-file/#links

本文链接:https://www.f2er.com/2822294.html

大家都在问