Permiso denegado para acceder al volumen en Docker-Compose

Permiso denegado para acceder al volumen en Docker-Compose

he seguidoeste tutorialpara implementar una aplicación web usando django, gunicorn, nginx y postgresql.

Cuando trabajo con la aplicación vacía en el tutorial, todo parece estar bien, pero luego intenté recrear la misma configuración usando mi aplicación Django y obtengo un "permiso denegado" cuando intento recopilar los archivos estáticos.

La configuración yml es:

version: '3.7'

services:
  postgres:
    image: postgres:11.2-alpine
    volumes:
      - database:/var/lib/postgresql/data
    env_file: .env.pg

  django:
    build: .
    command: gunicorn mysite.wsgi:application --bind 0.0.0.0:8000
    volumes:
      - static:/usr/src/django/static
    expose:
      - 8000
    env_file: .env
    depends_on:
      - postgres

  nginx:
    build: ./nginx
    volumes:
      - static:/usr/src/django/static
    ports:
      - 8009:80
    depends_on:
      - django

volumes:
  database:
  static:

El error que me sale al ejecutar docker-compose exec django python manage.py collectstatic --clear --noinputes

Traceback (most recent call last):
  File "manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.7/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.7/site-packages/django/core/management/__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.7/site-packages/django/core/management/base.py", line 323, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python3.7/site-packages/django/core/management/base.py", line 364, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 167, in handle
    any(self.storage.listdir(destination_path))
  File "/usr/local/lib/python3.7/site-packages/django/core/files/storage.py", line 315, in listdir
    for entry in os.scandir(path):
PermissionError: [Errno 13] Permission denied: '/usr/src/django/static'

Intenté ejecutar un shell dentro del contenedor: el directorio "estático" está donde se supone que debe estar, pero no puedo escribir nada en él (ni siquiera como root). El volumen de la base de datos en el contenedor de Postgres parece funcionar bien, así que creo que es un problema compartir el volumen entre 2 contenedores.

¿Alguna idea?

información relacionada