Nextcloud 版本:23.0.0
操作系统及版本:Fedora 35
我正在使用 Nextcloud Docker 映像。主机系统上安装了 Nginx 反向代理。数据卷位于单独的 HDD 上,而应用程序卷本身位于 SSD 上的根目录中。我在版本 22.x 中注意到了这个问题:如果我使用 WebDAV 复制大文件,SSD 根分区上的空间会很快耗尽(主机系统的 /tmp 使用 tmpfs)。同时,复制失败,在日志中我看到以下错误,因为根磁盘空间已满:
[PHP] Error: fread(): Write of 8192 bytes failed with errno=28 No space left on device at /var/www/html/apps/files_external/3rdparty/icewind/streams/src/Wrapper.php#55
PUT /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 中:
volumes:
- ./php.ini:/usr/local/etc/php/conf.d/php_custom.ini
但这并没有解决问题。我决定将镜像的整个 /tmp 目录移动到 tmpfs 可能是值得的:
tmpfs:
- /tmp
但这也没有任何结果,因为事实证明图像的 /tmp 始终是空的,看起来 Nextcloud Docker 不使用它。
那么磁盘空间消耗高的原因是什么? Nextcloud 镜像中用于复制临时文件的目录位于哪里?