Некстоблачная версия: 23.0.0
Операционная система и версия: Федора 35
Я использую образ Nextcloud Docker. Обратный прокси-сервер Nginx установлен в хост-системе. Том данных находится на отдельном жестком диске, а сам том приложения находится в корневом каталоге SSD.Я заметил эту проблему еще в версии 22.x: если я копирую большие файлы с помощью WebDAV, место в корневом разделе SSD заканчивается очень быстро (/tmp хост-системы использует tmpfs). При этом копирование не проходит и в логе вижу следующую ошибку, так как место на корневом диске заполнено:
[PHP] Ошибка: fread(): запись 8192 байт завершилась неудачно, errno=28 На устройстве не осталось места в /var/www/html/apps/files_external/3rdparty/icewind/streams/src/Wrapper.php#55
ПОЛОЖИТЬ /cloud/remote.php/webdav/Videos/file.mkv
Я попытался найти аналогичную проблему на форуме и обнаружил, что PHP вызвал проблему, и решение состоит в том, чтобы использовать другой путь для sys_temp_dir. Я попытался использовать следующий php.ini:
sys_temp_dir = "/var/www/html/data/tmp"
/var/www/html/data находится на другом жестком диске, так что это должно было решить проблему.
Я поместил это в свой docker-compose.yml:
тома:
- ./php.ini:/usr/local/etc/php/conf.d/php_custom.ini
но это не решило проблему. Я решил, что, возможно, стоит перенести весь каталог /tmp образа в tmpfs:
временные файлы:
- /тмп
но это тоже ничего не дало, как оказалось /tmp образа всегда пустой, похоже Nextcloud Docker его не использует.
Так в чем же причина большого потребления дискового пространства? Где находится этот каталог в образе Nextcloud, который он использует для временных файлов при копировании?