Путаница при использовании томов docker-compose для обслуживания статических файлов django

Докер новичок здесь, пытаясь настроить простой проект Django с помощью Compose. у меня былоуспех с этим в прошлом, но на этот раз я пытаюсь изменить настройку, но не могу понять, почему она не работает.

У меня есть следующий файл docker-compose.yml:

data:
  image: postgres:9.4
  volumes:
    - /var/lib/postgresql
  command: /bin/true

db:
  image: postgres:9.4
  restart: always
  expose:
    - "5432"
  volumes_from:
    - data

app:
  build: .
  restart: always
  env_file: .env
  expose:
    - "8000"
  links:
    - db:db
  volumes:
    - .static:/static_files

web:
  build: docker/web
  restart: always
  ports:
    - "80:80"
  links:
    - app:app
  volumes_from:
    - app

Мой / Dockerfile это:

FROM python:3.5
ENV PYTHONUNBUFFERED 1

ADD . /app
WORKDIR /app
RUN pip install -r requirements.txt
RUN SECRET_KEY=tmpkey python manage.py collectstatic --noinput

CMD gunicorn mysite.wsgi:application -b 0.0.0.0:8000

Мой / docker / web / Dockerfile - это:

FROM nginx:1.9
RUN rm /etc/nginx/conf.d/default.conf
ADD default.conf /etc/nginx/conf.d/

И мой файл /docker/web/default.conf:

server {
    listen 80 default_server;

    location /static/ {
      autoindex on;
      alias /static_files/;
    }

    location / {
        proxy_pass http://app:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Вывод из docker показывает статические файлы, устанавливаемые в / static_files, но nginx возвращает 404 для всех файлов в / static. Если я загляну в мою папку .static (в корне проекта), каталог будет пуст (кроме файла .gitkeep, который у меня там есть). Если я бегуdocker-compose app run ls -la /static_files, каталог пуст, ноdocker-compose app run ls -la /app/.static имеет файл .gitkeep. Очевидно, я что-то недопонимаю с Docker и Compose. Есть мысли о том, что я делаю не так? Я понимаю, чтоRUN SECRET_KEY=tmpkey python manage.py collectstatic --noinput должен записывать файлы в мою локальную папку .static, и nginx должен их видеть; ничего не происходит.

Версии программного обеспечения: docker-compose версии 1.7.0, сборка 0d7bf73 и Docker версии 1.11.0, сборка 4dc5990 на OS X, с докер-машиной, подключенной к облачному экземпляру.

Ответы на вопрос(1)

Ваш ответ на вопрос