如何执行occ

确定容器的名字

root@truenas[~]# docker ps
CONTAINER ID   IMAGE               COMMAND                  CREATED          STATUS          PORTS     NAMES
6ecd1e2ac244   093e7ccba7e4        "/entrypoint.sh apac…"   46 minutes ago   Up 46 minutes             k8s_nextcloud_nextcloud-5c494664f5-zs4xd_ix-nextcloud_cd216bc2-4fc4-420d-a80c-cdd234bb198d_0

这里会有一堆nextcloud相关的容器出现,只关注k8s_nextcloud开头的第一个容器就行,复制下这个名字或者ID(ID比较好,名字太长了),后面会用

执行occ

命令中的容器ID注意换成自己的,ID也可以不用输完整,只要不和别的冲突就行,比如ID:6ecd1e2ac244,我可以只写6ecd1
# 以修复索引的occ命令为例
root@truenas[~]# docker exec 6ecd1 --user www-data  php occ db:add-missing-indices

解决提示php-imagick没有SVG support

跟上面一样,首先得确认容器名,然后执行下述命令

注意容器ID需要改成自己的
root@truenas[~]# docker exec 6ecd1 apt -y update 

root@truenas[~]# docker exec 6ecd1 apt -y install libmagickcore-6.q16-6-extra

添加外部文件到nextcloud

将本地文件直接放入nextcloud目录中,nextcloud不会直接显示,因为数据库没有相应文件,需要执行扫描命令
root@truenas[~]# docker exec --user www-data 6ecd1 php occ files:scan --all

部分优化配置

设置定时任务

root@truenas[~]# crontab -u www-data -e 
no crontab for www-data - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/mcedit
  3. /usr/bin/vim.tiny

Choose 1-3 [1]: 3
crontab: installing new crontab


# 选择你习惯的编辑工具进行编辑,在打开的编辑器中加入下述命令
*/15 * * * * docker exec --user www-data 6ecd1 php cron.php