NextCloud upgrade

A NextCloud -nak van egy elég jól összerakott docker/compose alapú disztribúciója: https://github.com/nextcloud/docker/tree/master/.examples/docker-compos…

Ebben a komplett csomag össze van kalapálva: redis, cron, apache, sql db, reverse proxy és lets encrypt companion. Csak fel kell paraméterezni, és megy. A perzisztens adatok data volume -okba kerülnek, így a compose stop/rm sem gyakja ki őket.

A major frissítéseket csak lépésenként szabad megcsinálni, hogy a megfelelő db migráció megtörténhessen. Esetemben: 14->15->16->17->18. Azt hiszem másfél-két éve telepítettem, éppen ideje volt. Plusz a srácok elég gyorsan dolgoznak :) Igen, ezt ellustultam.

A munka érdemi része:

Ott, ahol a git -em állt a telepítéskor, leállítottam a konténereket. Backupoltam a compose és db.env fájlokat. Aztán húztam egy git pull -t, és release tag-enként elindítottam a nextCloudot, összesen négyszer. (pl. tag: 16-apache). Persze minden release tag-en megnéztem a compose fájlt, hogy változott-e strukturálisan vagy logikájában. A leállás és újra elindulás egyszerű:

docker-compose stop

docker-compose up -d

Egy kicsit furcsálltam, hogy nem volt megfelelően tagelve a docker image: https://github.com/nextcloud/docker/blob/15-apache/.examples/docker-com…

Ezt minden lépésben beírtam kézzel, pl. image: nextcloud:15.0-apache különben a legfrissebbel húzta volna rögtön. Nem egészen értem, hogy miért nincs a verzió beégetve ha egyszer release tag-en vagyunk, de mindegy.

Továbbá minden verzióugrásnál benéztem az admin panelbe, mert van egy áttekintő nézet ahol csinál egy self tesztet. Itt írta, hogy egyes db migrációkat kézzel végre kell hajtani.

4-ből 3 esetben:

docker exec --user www-data apache_app_1 php occ db:add-missing-indices

Illetve egy esetben:

docker exec --user www-data apache_app_1 php occ maintenance:mode --on
docker exec --user www-data apache_app_1 php occ db:convert-filecache-bigint
docker exec --user www-data apache_app_1 php occ maintenance:mode --off

Ezután kész. Egyébként ezt a nextCloudot csak sima meghajtó szinkronra használom én és egy családtagom, annak szuperül működik (korábbi telepítésekkel együtt vagy ~4 éve). De lehet hogy körbenézek milyen appok vannak hozzá.

Hozzászólások

Én jól megszivattam magam, mert a könnyebbik utat választva snap-ból telepítettem, de jópár appot így nem lehet feltenni rá (pl PicoCMS) ami apache conf szerkesztést igényelne

Jaja, én is örülnék egy olyan leírásnak, ami azoknak is való, akiknek "van dockerben ilyen meg olyan verzió, aztán tudjuk, hogy van egy update, de féltjük az adatbázisunkat, nem pontosan tudjuk, hogyan működik, de szeretnénk update-elni". Bevallom, annyira nem mélyedtem bele, hogy a fenti leírásod alapján biztosabban merjek nekiindulni egy 17-18 updatenek.

Érdekes, hogy nagyon nem találtam sehol, hogy hogyan lehet frissíteni 17->18-ra. Közben ez a parancs:

docker-compose up -d

 

elrendezte (köszi).

Nekem még kellett hegesztenem az /etc/apt/sources.list fájlon is, mert a vim és az mc nekem kell, aztán nekem is kellett a nextcloud:app docker image-ben javításokat futtatnom:
 

sudo -u www-data occ db:add-missing-indices
sudo -u www-data php occ db:add-missing-indices

Zavarmentesen fut a 18-as verzió.
Még az zavar, hogy a containerd-shim meghajtja a mysqld-t, mintha pár napja egy végtelen ciklusba futott volna.