Einführung
Erstellen eines Docker Containers für Nextcloud.
Voraussetzung
- Raspberry Pi mit Raspbian OS
- Docker
- Docker-Compose
- SWAG Setup
Container erstellen
Docker-Compose File:
version: '3'
services:
nextcloud-db:
image: linuxserver/mariadb
container_name: nextcloud-db
# führt zu Fehler im linuxserver image
# command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: unless-stopped
volumes:
- /sharedfolders/AppDataSD/nextcloud-mariadb-config:/config
environment:
- MYSQL_ROOT_PASSWORD=73SolitonSQL
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
- MYSQL_PASSWORD=73SolitonSQL
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
ports:
- "3306:3306"
nextcloud:
image: linuxserver/nextcloud
container_name: nextcloud
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
volumes:
- /sharedfolders/AppDataSD/nextcloud-config:/config
- /sharedfolders/Nextcloud-Data:/data
ports:
- 447:443
restart: unless-stopped
networks:
default:
external:
name: nextcloud-net
Erstelle Docker Network (falls nicht vorhanden):
docker network create nextcloud-net
docker-compose -f nextcloud_mariadb_docker-compose.yml up -d
Update Nextcloud
Nextcloud Container stoppen und löschen:
docker rm -f nextcloud
Neue images für Nextcloud herunterladen (immer nur ein Major Versionsupgrade möglich):
docker image pull nextcloud:<major current version + 1>
Docker-compose ausführen:
docker-compose -f nextcloud_mariadb_docker-compose.yml up -d
Als Admin einloggen und auf Einstellungen > Verwaltung: Übersicht gehen. Falls alte Version angezeigt wird und der Button ‚Updater‘ nicht angezeigt wird, dann im File \nextcloud-config\www\nextcloud\lib\private\Updater.php folgende Zeilen (ca. Zeile 200) suchen:
if ($currentVendor === ’nextcloud‘) {
return isset($allowedPreviousVersions[$currentVendor][$majorMinor])
&& (version_compare($oldVersion, $newVersion, ‚<=‘) ||
$this->config->getSystemValue(‚debug‘, false));
}
// Check if the instance can be migrated
return isset($allowedPreviousVersions[$currentVendor][$majorMinor]) ||
isset($allowedPreviousVersions[$currentVendor][$oldVersion]);
und jeweils ersetzen durch ‚return true;‘
Nextcloud Container erneut starten und prüfen ob ‚Updater‘ verfügbar ist. Falls ja, dann Upgrade durchführen. Während es Updates kann es mehrmals zu Fehlermeldungen kommen. Einige Minuten warten und Update fortsetzen. Falls Nextcloud im Maintenance Mode hängen bleibt, in der Datei \nextcloud-config\www\nextcloud\config\config.php die Zeile mit Maintenance löschen und Nextcloud erneut starten.
