快轉到主要內容

在 Nextcloud AIO 容器進入鎖定模式下手動升級紀錄

·162 字·1 分鐘
開源自由軟體
目錄

本文紀錄了過年時除舊佈新整理房間時,因為移動了家庭服務器電腦的位置,在重啟服務遇到需要手動更新的流程。

具體狀況發生在關機後重啟服務後,打開網頁時發現 Nextcloud 強制要求更新,並且進入維護鎖定模式,這是因為我當時安裝時使用的 docker-compose 指定最新版本,而我又傻傻的沒有修改就直接執行了 docker compose up 命令,依照官方文件描述,此時需要進入容器中使用命令行來手動更新了。

安裝背景
#

本文中的 Nextcloud 安裝於 Proxmox 中的一個 CT 容器中,使用官方的 Nextcloud AIO 方案部屬。

升級版本
#

27 版 > 27 版的最新版本 > 28.0.2

過程紀錄
#

以下 php 命令開頭的指令需要在運行 Nextcloud 的 docker 容器中執行
  1. 在 porxmox 中選擇安裝 Nextcloud 的 CT ,進入命令行模式

  2. 先升級主程式 命令參考 (github.com)

    # 進入 nextcloud 的 docker 容器中
    sudo docker exec --user www-data -it nextcloud-aio-nextcloud bash
    
    # Switch to the beta channel
    php occ config:system:set updater.release.channel --value=beta
    
    # Run the update
    php updater/updater.phar --no-interaction --no-backup && php occ app:enable nextcloud-aio --force
    
    # Switch back to the stable channel
    php occ config:system:set updater.release.channel --value=stable
    

    依照 github 說明,第二步驟的 updater 可以多執行幾次

    該命令一次只會升級一個小版本,等到不會升級後在進行下一步

    但我這次只執行一次就升到版本 27 的最新版本了,第二次執行就會直接結束

  3. 升級 app

    如果要繼續升級到版本 28,這次需要先進行 app 升級

    php occ upgrade
    

    通常會在這邊遇到錯誤,特別是如果安裝了一些有的沒有的額外 app

    這時可以查看錯誤 log,鎖定沒辦法更新的 app 名稱,然後使用 occ 命令停用該 app

    # 列出所有 app 名單
    php occ app:list
    
    # 停用特定 app
    php occ app:disable $appname
    

    停用之後再次運行,應該就沒問題了

    php occ upgrade
    

    升級完成之後可以進行步驟 1 再次進行主程式升級

  4. 反覆步驟 1~2,可以一步步將版本升級至最新版本

  5. 完成主程式的更新會自動解除維護模式,就可以正常使用 Nextcloud 了

補充資料
#

BEN周
作者
BEN周
抓住每一個一閃即逝