Docker가 Django에서 정적 파일을 읽지 않습니다.

Docker가 Django에서 정적 파일을 읽지 않습니다.

나는 이미 많은 시간을 소비한 문제에 직면해 있습니다. docker 및 django를 사용하여 애플리케이션을 배포하려고 하는데 정적 파일을 찾을 수 없다는 메시지가 나오면 읽을 수 없습니다. 컨테이너에 들어갔더니 파일이 있어야 할 곳에 있습니다.

바로 아래에 몇 가지 코드를 추가하겠습니다.

도커파일

FROM python:3.6

ENV PYTHONUNBUFFERED 1

RUN mkdir /www

COPY Pipfile Pipfile.lock /www/
WORKDIR /www

RUN pip install pipenv && pipenv install --system

COPY . /www/
RUN pip install -r requirements.txt
RUN cd myapp-root && python manage.py collectstatic --no-input

EXPOSE 8000
CMD ["gunicorn", "-c", "config/gunicorn/conf.py", "--bind", ":8000", "--chdir", "myapp-root", "myapp.wsgi:application"]

settings.py

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static")
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "media")

docker-compose.yml

version: '3'

services:

  # database containers, one for each db
  postgres:
    restart: always
    image: postgres:latest
    ports:
      - "5432:5432"
    volumes:
      - db_volume:/var/lib/postgresql/data/

  # web container, with django + gunicorn
  djangoapp:
    build: .
    environment:
      - DJANGO_SETTINGS_MODULE
    volumes:
      - .:/www
    links:
      - postgres:postgres
      - redis:redis
    env_file: .env

  # reverse proxy container (nginx)
  nginx:
    image: nginx:1.13
    ports:
      - 80:80
    volumes:
      - ./config/nginx/conf.d:/etc/nginx/conf.d
      - ./myapp-root/static:/static
      - ./myapp-root/media:/media 
    depends_on:
      - djangoapp

  redis:
    restart: always
    image: redis:latest
    ports:
      - "6379:6379"
    volumes:
      - redisdata:/data

volumes:
  db_volume:
  redisdata:

local.conf(nginx)

server {

    listen 80;
    server_name localhost;

    location /static/ {
        alias /www/myapp-root/static/;
    }

    location /media/ {
        alias /www/myapp-root/media/;
    }

    location / {
        proxy_pass http://djangoapp;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_redirect off;
        if (!-f $request_filename) {
            proxy_pass http://djangoapp;
            break;
        }
    }
}

파일의 지역화를 여러 번 변경했지만 여전히 Docker 컨테이너에서 찾을 수 없습니다.

nginx_1      | 2019/06/29 00:11:28 [error] 6#6: *3 open() "/www/myapp-root/static/css/style.css" failed (2: No such file or directory),

감사합니다,

관련 정보