docker-compose의 볼륨 액세스 권한이 거부되었습니다.

docker-compose의 볼륨 액세스 권한이 거부되었습니다.

나는 팔로우했다이 튜토리얼django, gunicorn, nginx 및 postgresql을 사용하여 웹 애플리케이션을 배포합니다.

튜토리얼에서 빈 애플리케이션으로 작업할 때 모든 것이 괜찮아 보이지만 Django 앱을 사용하여 동일한 구성을 다시 생성하려고 시도했고 정적 파일을 수집하려고 할 때 "권한이 거부되었습니다"라는 메시지가 표시됩니다.

구성 yml은 다음과 같습니다.

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:

실행할 때 발생하는 오류는 docker-compose exec django python manage.py collectstatic --clear --noinput다음과 같습니다.

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'

컨테이너 내부에서 쉘을 실행해 보았습니다. "정적" 디렉토리가 있어야 할 위치이지만 그 안에 아무 것도 쓸 수 없습니다(루트 사용자라도). postgres 컨테이너의 데이터베이스 볼륨은 잘 작동하는 것 같은데, 두 컨테이너 간에 볼륨을 공유할 때 문제가 되는 것 같습니다.

어떤 아이디어?

관련 정보