Django `collecstatic` возвращает `[Errno 13] Permission denied: '/code/static/admin/js/vendor/select2/i18n/pl.6031b4f16452.js.gz'`.

Я запускаю свое приложение django в Docker. Недавно я попробовал запустить collecstatic и вместо этого получил такой код ошибки. Не уверен, что это значит и что делать:

>docker-compose exec web python manage.py collectstatic
Traceback (most recent call last):
  File "/code/manage.py", line 22, in <module>
    main()
  File "/code/manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.11/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.11/site-packages/django/core/management/__init__.py", line 436, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.11/site-packages/django/core/management/base.py", line 412, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python3.11/site-packages/django/core/management/base.py", line 458, in execute
    output = self.handle(*args, **options)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 209, in handle
    collected = self.collect()
                ^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 148, in collect
    for original_path, processed_path, processed in processor:
  File "/usr/local/lib/python3.11/site-packages/whitenoise/storage.py", line 162, in post_process_with_compression
    for name, compressed_name in self.compress_files(files_to_compress):
  File "/usr/local/lib/python3.11/site-packages/whitenoise/storage.py", line 199, in compress_files
    for compressed_path in compressor.compress(path):
  File "/usr/local/lib/python3.11/site-packages/whitenoise/compress.py", line 84, in compress
    yield self.write_data(path, compressed, ".gz", stat_result)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/whitenoise/compress.py", line 120, in write_data
    with open(filename, "wb") as f:
         ^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/code/static/admin/js/vendor/select2/i18n/pl.6031b4f16452.js.gz'

Я где-то читал, что это может быть связано с привилегиями root, но я не уверен, какие привилегии root и как это исправить.

У меня была такая же проблема.

Попытка:

chmod -R 755 /code/static

Если не помогло, попробуйте запустить его от имени другого пользователя.

Также вы можете временно отключить сжатие в Whitenoise, установив WHITENOISE_USE_FINDERS значение False в настройках:

`WHITENOISE_USE_FINDERS = False`
Вернуться на верх