NextCloud-Docker迁移-跨版本升级

背景

迁移服务器之后正常迁移nextcloud服务,因为是部署在docker中,所以升级也比较方便,但是因为docker-compose.yml 中是镜像latest,所以迁移后自动更新了版本。导致无法启动。

具体表现

发现一直处于维护中,然后提示升级失败
查看迁移前环境镜像的版本 docker image inspect nextcloud:latest|grep -i version,然后更改yml配置文件中镜像的版本为看到的版本。
发现部分文件已经升级:相关内容

恢复方法

因为已经提前做了备份,所以直接删除当前持久化目录,从备份中恢复,然后更改docker-compose的yml文件,更改镜像版本为上面查询的版本,最终启动正常,恢复服务。

正常跨版本

因为看到新版本也更新了很多特性,所以这里也做了一些版本升级,正常启动如下

想要升级到新版本,可以docker-compose设置为当前版本正常启动后登录,进入管理设置-概览,会看到提示可更新的版本

也可以查看官方升级路线,这里是官方版本路线:https://github.com/nextcloud/server/wiki/Maintenance-and-Release-Schedule

然后更改docker-compose的yml配置文件版本号为可更新的版本,再重新启动 docker-compose up -d

后面重复以下步骤

  • 升级启动后首先进入概览页面,
    1. 如果需要手动点击升级,则点击一下。

    2. 查看告警,按照提示进入docker使用相关命令修复。然后刷新管理页面UI,看到无相关告警后。进行下一步。

      备注:命令执行可能需要切换用户 --user www-data,具体命令搜索nextcloud 修复索引,搜索到相关命令。

    3. 明确且不关注的告警,如url不安全,可根据需求判断是否处理。

  • 更改yml配置文件的版本为当前概览页面提示可更新的版本,然后重启docker-compose up -d

最终本次升级到24.0.8,(此刻最新稳定包为25.0.2)服务一切正常,本次升级结束。

问题

joplin使用webdav连接,多个客户端有一个客户端无法连接.

报错信息

File with name joplin/locks/1_1_9d60348fb0ae4f0f8b3a2ce749390c3e.json could not be located

解决方法

当前nextcloud版本为24.0.8 ,还可以升级到最新版本25.0.2
尝试多种方法无法解决后,尝试升级,升级后正常解决。

最近删除文件夹打不开

表现:

最近删除文件打不开、卡死。

后台日志

管理页面日志如下:
Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes) at /var/www/html/3rdparty/doctrine/dbal/src/Driver/PDO/Result.php#120

分析

尝试了很多方法增加php内存,但是没有解决问题,此时发现:历史删除文件存储目录很大。

推测是文件太多,这里手动全部删除。
命令
sudo nextcloud.occ trashbin:cleanup -all-users

发现已经可以正常访问 最近删除文件夹了。

优化配置

为了避免长期不维护之后,最近删除文件目录再次打不开。配置一下nextcloud的回收站设置。

官方文档说明: https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#deleted-items-trash-bin

最终根据自己的情况,我增加了下面的配置

  'trashbin_retention_obligation' => 'auto,90',
  'versions_retention_obligation' => 'auto,90',  

配置文件docker目录下 /var/www/html/config/config.php
对应宿主机目录 xxx/docker-nextcloud_nextcloud/_data/config/config.php
在配置文件 $CONFIG = array () 之间插入即可。

备注

IT 内容具有时效性,未避免更新后未同步,请点击查看最新内容: NextCloud-Docker迁移-跨版本升级
文章首发于: http://nebofeng.com/2022/12/17/nextcloud-docker%e8%bf%81%e7%a7%bb-%e8%b7%a8%e7%89%88%e6%9c%ac%e5%8d%87%e7%ba%a7/

你可能感兴趣的:(nextcloud,docker,docker,运维,容器)