Confusión sobre el uso de volúmenes de Docker-Composose para servir archivos estáticos de Django

Docker novato aquí, tratando de configurar un proyecto Django simple usando Compose. he tenidoéxito con esto en el pasado, pero esta vez estoy intentando una configuración diferente, que no puedo entender por qué no funciona.

Tengo el siguiente archivo 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

Mi / Dockerfile es:

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

Mi / docker / web / Dockerfile es:

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

Y mi archivo /docker/web/default.conf es:

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;
    }
}

La salida de Docker muestra los archivos estáticos que se instalan en / static_files, pero nginx devuelve 404 para todos los archivos en / static. Si busco en mi carpeta .static (en la raíz del proyecto), el directorio está vacío (aparte de un archivo .gitkeep que tengo allí). Si corrodocker-compose app run ls -la /static_files, el directorio está vacío, perodocker-compose app run ls -la /app/.static tiene el archivo .gitkeep. Claramente, estoy malinterpretando algo con Docker y Compose. ¿Alguna idea sobre lo que estoy haciendo mal? Entiendo que elRUN SECRET_KEY=tmpkey python manage.py collectstatic --noinput debería estar escribiendo archivos en mi carpeta local .static y que nginx debería ver estos archivos; Tampoco está sucediendo.

Versiones de software: docker-compose versión 1.7.0, compilación 0d7bf73 y Docker versión 1.11.0, compilación 4dc5990 en OS X, con máquina acoplable conectada a la instancia de la nube.

Respuestas a la pregunta(1)

Su respuesta a la pregunta