# 如何执行 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