Implantar na janela de encaixe com nginx, django, daphne

Quero implantar meu serviço na janela de encaixe.

e meu serviço é desenvolvido usando canais python + django e django

── myproject ├── myproject │ ├── settings.py │ ├── urls.py │ ├── asgi.py │ ├── ... ├── collected_static │ ├── js │ ├── css │ ├── ... ├── nginx │ ├── Dockerfile │ ├── service.conf ├── requirements.txt ├── manage.py ├── Dockerfile └── docker-compose.yml

myproject / Dockerfile:

FROM python
ENV PYTHONUNBURRERED 1

RUN mkdir -p /opt/myproject
WORKDIR /opt/myproject
ADD . /opt/myproject

RUN pip install -r requirements.txt
RUN python manage.py migrate

myproject / docker-compose.yml:

version: '2'
services:
  nginx:
    build: ./nginx
    networks:
      - front
      - back
    ports:
      - "80:80"
    depends_on:
      - daphne
  redis:
    image: redis
    networks:
      - "back"
    ports:
      - "6379:6379"
  worker:
    build: .
    working_dir: /opt/myproject
    command: bash -c "python manage.py runworker"
    environment:
      - REDIS_HOST=redis
    networks:
      - front
      - back
    depends_on:
      - redis
    links:
      - redis
  daphne:
    build: .
    working_dir: /opt/myproject
    command: bash -c "daphne -b 0.0.0.0 -p 8000 myproject.asgi:channel_layer"
    ports:
      - "8000:8000"
    environment:
      - REDIS_HOST=redis
    networks:
      - front
      - back
     depends_on:
      - redis
     links:
      - redis
  networks:
    front:
    back:

myproject / nginx / Dockerfile

FROM nginx
COPY service.conf /etc/nginx/sites-enabled/

myproject / nginx / service.conf

server {
  listen 80;
  server_name example.com #i just want to hide domain name..
  charset utf-8;
  client_max_body_size 20M;

  location /static/ {
    alias /opt/myproject/collected_static/;
  }

  location / {
    proxy_pass http://0.0.0.0:8000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";

    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $server_name;
  }
}

e eu escrevo um comandodocker-compose up -d, nginx e daphne funcionam bem.

mas quando me conectei a example.com:80, só consigo ver a página padrão do nginx.

e quando me conectei a example.com:8000, apenas vejo a página de serviço do meu projeto. (mas não pode ver arquivos estáticos)

Quero vincular o serviço nginx e daphne! O que devo fazer? por favor me ajude.

quando eu apenas implanto com nginx + daphne + django sem docker, meu serviço funciona bem.

questionAnswers(2)

yourAnswerToTheQuestion