NextCloud跨版本升级

date
Apr 18, 2022
slug
nextcloud
status
Published
tags
Docker
NextCloud
summary
NextCloud长期不升级,一次升级就炸了
type
Post

安装

选择postgres版本的安装方式(因为pg秒杀mysql)
这里有个问题,需要先`docker-compose up db` `docker-compose down` 然后`docker-compose up`,具体查看https://github.com/nextcloud/docker/issues/1335#issuecomment-748933347

配合使用

版本

  1. minio verison 2022-04-12T06:55:35Z
  1. nextcloud 23.0.3
  1. aria2-pro latest

规定

创建文件由minio创建,这样minio会生成目录和管理,nextcloud和aria2只负责写入
  1. 首先创建minio,并将minio挂载到最大的路径下 如 /data
  1. 在minio界面创建bucket aria2-download
  1. 安装aria2 , 挂载 /data/aria2-download:/downloads:rw 这样aria2下载的文件,可以被minio管理了
  1. 安装nextcloud,并挂载/data:/home:rw下,进入容器执行 chmod 777 -R /home && chown -R www-data /home
  1. nextclud配置外部存储,打开 应用中的External storage support ,这样nextcloud也可以看到这些文件了
添加目录
notion image
  1. minio aria2 nextcloud公用同一个文件夹会有权限的问题
增加脚本cron-chmod.sh 找到crontab -e 每分钟执行一次,
chmod 777 -R /data1/public
# crontab -e
* * * * * sh /xx/cron-chmod.sh
  1. 唯一的缺点就是,文件上传后,一分钟才可以有操作的权限,这个其实也可以改(crontab -e 增加多条,分别执行sleep),但是没啥必要

配置

挂载外部磁盘

升级

通过管理员账户,进入“管理”-“概览”-“版本”,下面提示的版本是可以升级的版本,不能直接更新到latest!!!!
所以要去docker-compose中更改version,一点一点的更新
如果更新了,就无法挽救了,就只能使用下面的强制更新了

强制升级

一般情形下,通过
docker pull nextcloud
进入容器
docker exec -it --user www-data nextcloud_app_1 bash
可以获取到最新的nextcloud容器镜像,然后nextcloud会自行更新到最新版本。
由于我使用了一段时间nextcloud应该是在16这个版本,然后直接pull下来了18版本。此时,发现我的nextcloud无法打开,出现如下错误:
通过以下命令,查询到相关的版本
docker exec --user www-data nextcloud_app_1 php /var/www/html/occ status
结果
通过以下命令进行升级
docker exec --user www-data nextcloud_app_1 php /var/www/html/occ upgrade
结果
发现不允许升级。
以下高能到来,强制进行升级 参考链接
修改以下这个文件 nextcloud/lib/private/Updater.php
搜索doUpgrade
notion image
修改保存之后,再次通过以下命令就可以升级
docker exec --user www-data nextcloud_app_1 php /var/www/html/occ upgrade
等待升级完成之后,使用以下命令关闭维护模式
docker exec --user www-data nextcloud_app_1 php /var/www/html/occ  maintenance:mode --off
结果
完成以上步骤之后,重新打开网页即可进入到Nextcloud里面。
一句话忠告:尽量不要夸太多版本升级,否则会出现太多的异常无法解决

© WangJiaHao 2022

豫ICP备18022029号