Nextcloud 23 in Docker: fehlende Indizes, wie "occ db:add-missing-indices" ausführen?

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
903
Punkte für Reaktionen
12
Punkte
44
Ich habe eine DS420 mit DSM7.0.1. Der offizielle Nextcloud Container ist installiert, als Datenbank nutze ich das Synology-Paket MariaDB 10. Nach dem Update auf Nextcloud 23.0.0 kam die Meldung mit den fehlenden Indizes "fs_id_storage_size" in der Tabelle "oc_filecache" und "fs_storage_path_prefix" in der Tabelle "oc_filecache". Also bin ich in Docker > Nextcloud > Terminal gegangen und habe versucht occ db:add-missing-indices auszuführen:

Bash:
root@Nextcloud:/var/www/html# occ db:add-missing-indices
bash: occ: command not found

Dann versuchte ich es, wie im Nextcloud Server Administration Guide beschrieben:

Bash:
root@Nextcloud:/var/www/html# sudo -u www-data php occ db:add-missing-indices                                         
bash: sudo: command not found

Ich bin ratlos. Meine Recherche im Internet war nicht erfolgreich, da niemand, den ich gefunden habe, sich auf eine Docker-Installation bezieht.

Was muss ich tun?
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
903
Punkte für Reaktionen
12
Punkte
44
Hat leider nicht geklappt.

Bash:
root@Nextcloud:/var/www/html# php occ db:add-missing-indices                                                           
Console has to be executed with the user that owns the file config/config.php                                         
Current user id: 0                                                                                                     
Owner id of config.php: 33                                                                                             
Try adding 'sudo -u #33' to the beginning of the command (without the single quotes)                                   
If running with 'docker exec' try adding the option '-u 33' to the docker command (without the single quotes)         
root@Nextcloud:/var/www/html# sudo -u #33 php occ db:add-missing-indices                                               
bash: sudo: command not found
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
903
Punkte für Reaktionen
12
Punkte
44
Sorry, das verstehe ich nicht.

Die Container ID konnte ich immerhin ermitteln mit sudo docker ps -a. Aber das war's. Was meinst Du in dem Zusammenhang mit "Shell"?

Und der Link hilft mir auch nichtg weiter. sudo -u www-data php occ db:add-missing-indices steht da auch, exec --user www-data jedoch nicht. Und im Terminal des Containers heisst es bash: docker: command not found.
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.159
Punkte für Reaktionen
912
Punkte
424
Docker exec führst du von außerhalb des Containers im Container aus. Also Syno shell / ssh / Kommandozeile.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
Und der Link hilft mir auch nichtg weiter.
Das ist nicht gut.... Bei einem Container sollte der erste Anlaufpunkt IMMER die Image Beschreibung sein - da die Informationen dort auf das Image zugeschnitten sind.

Wie Fusion schon geschrieben hat: shell = Komandozeile, dort wo Du per ssh hinkommst. So solltest Du es ausführen können:
Code:
sudo docker ps # herausfinden der image id
sudo docker exec --user www-data ${verwenden der herausgefundenen container id von docker ps} php occ db:add-missing-indices
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
903
Punkte für Reaktionen
12
Punkte
44
Das ist nicht gut.... Bei einem Container sollte der erste Anlaufpunkt IMMER die Image Beschreibung sein - da die Informationen dort auf das Image zugeschnitten sind.

Sorry, ich bin kein Auskenner. Ich kenne die Seite, habe sie aber nicht verstanden und könnte auch jetzt noch nicht die erforderlichen Infos raus finden. Sorry.

Wie Fusion schon geschrieben hat: shell = Komandozeile, dort wo Du per ssh hinkommst. So solltest Du es ausführen können:
Code:
sudo docker ps # herausfinden der image id
sudo docker exec --user www-data ${verwenden der herausgefundenen container id von docker ps} php occ db:add-missing-indices

Das habe ich verstanden und konnte es auch umsetzen. :) Danke für die geduldige Hilfe! (y)

Jetzt habe ich dazu nur noch eine Frage: wann ändert sich die Container D? Bei jedem Container Start, wenn der Container zurückgesetzt wird oder nur beim ersten Start des Containers?
 
  • Like
Reaktionen: dirk1305 und manuxi

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.149
Punkte für Reaktionen
737
Punkte
154
Du bekommst jedesmal eine neue ID wenn der Container mit einem neuen Image aktualisiert wird.

Du kannst bei dem Befehl aber auch den Containernamen nehmen, der ändert sich ja normalerweise nicht:
Code:
docker exec -u www-data -it <Containername> /bin/bash
 
  • Like
Reaktionen: dirk1305


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat