Closed Zaby1990 closed 3 years ago
kannst du einmal die Anmeldung an der Datenbank prüfen
docker exec -it nextcloud-db bash
mysql -h nextcloud-db -u nextcloud -p
# dann MYSQL_PASSWORD eingeben
show databases;
dann solltest du folgende Datenbanken finden
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| nextcloud |
+--------------------+
2 rows in set (0.010 sec)
Danke @mr-bolle für den Input. Ich denke, da liegt der Hund begraben, ich bekomme die Fehlermeldung:
Enter password:
ERROR 1045 (28000): Access denied for user 'nextcloud'@'f9adbf05074b' (using password: YES)
Manchmal bekam ich beim Starten des Nextcloud-Containers mit
sudo docker-compose up -d
auch die Meldung
WARNING: Service "nextcloud-db" is using volume "/config" from the previous container. Host mapping "/var/docker/nextcloud/database_config" has no effect. Remove the existing containers (with
docker-compose rm `
(kommt in einer zu langen Zeile um vollständig angelegt zu werden)
weshalb ich den remove Befehl auch durchgeführt habe, Fehler bleibt und DB weiterhin auch nicht über cl ansprechbar
Vielleicht noch eine dumme Frage, ich habe darauf verzichtet die Einstellung so zu wählen, dass die Dockerbefehle ohne rootrechte ausgeführt werden können. In manchen Tutorials findet man ja solche Sachen:
systemctl enable --now docker ; usermod -aG docker $USER ; newgrp docker
Das habe icht nicht gemacht. Ich finde es angenehmer, wenn man da noch eine zusätzliche Passwortstufe drin hat. Kann dies zu Berechtigungsproblemen führen?
@zaby1990 ja das ist das Problem.
Beende einmal den container sudo docker-compose down
und mach mal eine Kopie von deinem Datenbank Volume
sudo mv /var/docker/nextcloud/database_var /var/docker/nextcloud/database_var_old && sudo mv /var/docker/nextcloud/database_config /var/docker/nextcloud/database_config_old
Danach kannst du die Nextcloud noch mal starten (es wird eine neue Datenbank angelegt) sudo docker-compose up -d
hab ich gemacht, Fehler bleibt bestehen.
Im Zusammenhang mit der Datenbank ist mir beim ersten Versuch aufgefallen, dass das Image mit dem vorgeschlagenen Eintrag
services:
nextcloud-db:
image: linuxserver/mariadb:10.4
nicht geladen werden konnte. Deshalb habe ich auf die Versionsangabe verzichtet:
services:
nextcloud-db:
image: linuxserver/mariadb
Im entstandenen Container liegt folgende Version vor:
root@7c8dc10bc96b:/# mariadb --version
mariadb Ver 15.1 Distrib 10.1.47-MariaDB, for debian-linux-gnueabihf (armv7l) using readline 5.2
Gibt es da eventuell Kompatibilitätsprobleme?
@Zaby1990 ich habe einmal auf den RP2 das Paket installiert, das Problem ist die mariadb Ubuntu verwendet, und das alpine image unterstützt ebenfalls diese Hardware nicht 👎
N: Skipping acquire of configured file 'main/binary-armhf/Packages' as repository 'http://mirror.rackspace.com/mariadb/repo/10.4/ubuntu bionic InRelease' doesn't support architecture 'armhf'
versuche einmal ein älteres Image - leider finde ich aktuell keine bessere Lösung.
services:
nextcloud-db:
image: lsioarmhf/mariadb
@mr-bolle nochmal danke für den Ehrgeiz mein Problem zu lösen.
Da ich danke deiner Hilfe das Problem jetzt etwas besser verstanden habe, habe ich andere Images gesucht, immer mit der Maßgabe, dass es für die armv7-Architektur meines RPi3B gehen sollte. Man findet auch recht viele Lösungen dazu, allerdings keine zielführend. Folgendes funktioniert nicht:
mariadb Ver 15.1 Distrib 10.1.34-MariaDB, for debian-linux-gnueabihf (armv7l) using readline 5.2
)mariadb Ver 15.1 Distrib 10.5.8-MariaDB, for Linux (armv8l) using readline 5.1
)mariadb Ver 15.1 Distrib 10.5.8-MariaDB, for Linux (armv8l) using readline 5.1
)mariadb Ver 15.1 Distrib 10.3.27-MariaDB, for debian-linux-gnueabihf (armv8l) using readline 5.2
)mariadb Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnueabihf (armv7l) using readline 5.2
)bei dem Befehl Enter password:
mysql -h nextcloud-db -u nextcloud -p
variiert dann auch die Fehlermeldung etwas, nämlich an welcher steller er Versucht sich mit dem Usernamen anzumelden, so habe ich bei:
Enter password:
ERROR 1045 (28000): Access denied for user 'nextcloud'@$VARIANTE (using password: YES)
folgende Variationen erhalten (je nach geladenem Image):
Ich werde noch etwas weiter umprobieren, werde dich/euch nun erstmal an aktuellen Stand teilhaben lassen.
Ich habe so ein Gefühl, dass ich mir selbst ein image zusammenfriemeln muss. Da das Thema Docker für mich neu ist, wird das auch ein gute Stück Arbeit, wenn auch Chance was neues zu lernen. Deshalb/Dennoch die Frage: ist es sinnvoll diesen Weg zu gehen?
ℹ️ update verwende bitte Nextcloud 20, Nextcloud 21 braucht mysql 10.2 und hier finde ich kein Image.
nextcloud-app:
image: nextcloud:20
linuxserver/mariadb
Es wird die MariaDB-Version "10.1.47-MariaDB-0ubuntu0.18.04.1" verwendet. Nextcloud 21 wird diese Version nicht mehr unterstützen und benötigt MariaDB 10.2 oder höher.
linuxserver/mariadb:alpine
mysql Ver Distrib 10.5.9-MariaDB
@Zaby1990 was ist dein Problem? Vermutlich musst du nur mal dein mysql volume löschen (damit alle alten Instanzen gelöscht werden)
Ich habe nun mal das offizielle Image von linuxserver getestet, und damit kann ich mich korrekt auch an der Nextcloud anmelden, und auch über den nextcloud-db Containter komm ich auf drauf.
services:
nextcloud-db:
image: linuxserver/mariadb
$ docker exec -it nextcloud-db bash
root@1e4a060fc56b:/# mysql -h nextcloud-db -u nextcloud -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.1.47-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| nextcloud |
+--------------------+
2 rows in set (0.00 sec)
MariaDB [(none)]>
Alternativ sollte auch die postgres Datenbank funktionieren.
ich hab noch nicht aufgegeben, sondern gerade leider wenig Zeit. Ich teste weiter und melde mich wenn's läuft oder ich verzweifle.
Ich habe auch mal weiter getestet, vielleicht wäre https://github.com/nextcloud/nextcloudpi was.
Der Raspberry ist für die Nextcloud nicht so recht geeignet, vielleicht werde ich es mal mit dem Raspberry Pi 4 testen, alles was älter ist läuft nicht so richtig 🤔
meine db.env und docker-compose.yml Datei, läuft auf einem RPi4
POSTGRES_PASSWORD=...
POSTGRES_DB=nextcloud
POSTGRES_USER=nextcloud
version: '3'
services:
db:
image: postgres
restart: always
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- db:/var/lib/postgresql/data
env_file:
- db.env
app:
image: nextcloud:apache
restart: always
ports:
- 8080:80
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- nextcloud:/var/www/html
environment:
- POSTGRES_HOST=db
env_file:
- db.env
depends_on:
- db
volumes:
db:
nextcloud:
Ich habe den RPi nochmal komplett neu aufgesetzt und die hier verfügbaren Dateien für Nextcloud und Traefik reinkopiert. Mit den entsprechenden Anpassungen (Mail-adresse, domain) und abänderungen (nextcloud:20)
Ich habe immernoch das Problem, dass ich auf das Traefik-Dashboard nicht zugreifen kann. In der Anleitung steht, es wäre unter Port 8180 ansprechbar, dieser wird in der docker-compose.yaml aber nicht durchgeleitet, was ich nicht verstehe. den Port hab ich in meinem Router natürlich freigegeben, ich denke, das ist nicht das Problem ich habe es auch mit 8180:8180 und 8180:443 (im docker-compose.yaml von traefik) probiert, aber immer Verbindung nicht möglich auch wenn ich von innerhalb des Netzwerks komme, also über IP:8180 kann ich das Dashboard nicht aufrufen --> 404 page not found
und die Nextcloud-App kann ich jetzt leider auch gar nicht mehr aufrufen. SSL_ERROR_INTERNAL_ERROR_ALERT Das hatte ich zu Beginn auch, ich denke da braucht das Zertifikat noch etwas Zeit, allerdings hat es jetzt schon über 30 Minuten Zeit gehabt, ich warte jetzt mal noch 2 Stunden Wenn das wieder gehen sollte, kann ich weiter testen und berichten.
Die Raspy variante von Nextcloud probier ich dann als Nächtes.
Traefik braucht port 80 + 443 im Container und Host
ports:
- "80:80"
- "443:443"
ports:
- "80:80"
- "443:443"
ja, das hab ich drin. inzwischen habe ich den Probierzusatz
- "8180:8180"
wieder entfernt.
mit traefik.domain.dynamikdomainservice.de
ohne Port bekomme ich beim Traefik-Dashboard ebenfalls den SSL_ERROR_INTERNAL_ERROR_ALERT
(ich habe in der docker-compose das /dashboart und /api für die URL entfernt)
Der Zugriff auf die acme.json scheint zu klappen, sieht so aus:
{
"default": {
"Account": {
"Email": "meine_@dres.se",
"Registration": {
"body": {
"status": "valid",
"contact": [
"mailto:meine_@dres.se"
]
},
"uri": "https://acme-v02.api.letsencrypt.org/acme/acct/122066741"
},
"PrivateKey": LONG-KEY-IN-GAENSSEFUESSCHEN,
"KeyType": "4096"
},
"Certificates": null
}
}
Das SSL Zertifikat sieht korrekt aus, nun kümmern wir uns mal um dein Traefik Dashboard. Hier einmal meine docker-compose.yaml
Den Port 8180 brauchst du nur, wenn du über deine Lokale Host IP auf das Dashboard zugreifen willst. Das ist aber nicht notwendig, da du eine Traefik Subdomain mit Zertifikat hast. Verwende aber eine auth.basicauth Middleware, dass ist sicherer.
version: '3.7'
services:
traefik:
image: traefik:2.3
container_name: traefik
command:
- "--api=true"
- "--api.dashboard=true"
security_opt:
- no-new-privileges:true
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./config:/etc/traefik
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.entrypoints=websecure"
- "traefik.http.routers.traefik.rule=Host(`traefik.example.com`)" # Domain anpassen
- "traefik.http.routers.traefik.tls=true"
- "traefik.http.routers.traefik.tls.certresolver=default"
- "traefik.http.routers.traefik.middlewares=secHeaders@file"
- "traefik.http.routers.traefik.service=api@internal"
- "traefik.http.routers.traefik.middlewares=auth@docker"
- "traefik.http.middlewares.auth.basicauth.users=xxxxxxUSERxxxx:$$xxxxxHASHxxxxPASSWORTxxx"
networks:
- traefik_proxy
- default
ports:
- "80:80"
- "443:443"
# - "8180:8080" # Externer Port wird hier auf 8180 gelegt!
restart: always
networks:
traefik_proxy:
external:
name: traefik_proxy
default:
driver: bridge
Hallo, methodische Fehlersuche find ich super. Ich hatte folgende Differenzen zu deinem File (die geänderten stehen normal drin, meine übrig gebliebenen als Kommentar):
traefik:
[...]
command:
- "--api=true"
- "--api.dashboard=true"
security_opt:
- no-new-privileges:true
[...]
label:
- "traefik.http.routers.traefik.tls=true"
- "traefik.http.routers.traefik.middlewares=secHeaders@file"
- "traefik.http.middlewares.auth.basicauth.users=xxUSERxx:yyHASHyy"
# - "traefik.http.middlewares.auth.basicauth.usersfile=./htpasswd"
# (das hab ich mal noch probiert, aber das wollte nicht,
# im File stand nichts anderes als in der Zeilde drüber)
# - "traefik.http.routers.traefik.entrypoints=websecure"
[...]
Fazit: Dashboard ist erreichbar. Ich finde mich leider in der Traefik-Doku nicht so gut zurecht, ich denke ich wäre da nicht allein drauf gekommen. Danke.
Als nächstes werde ich mir die Raspi-Cloud anschauen.
services: nextcloud-db: image: linuxserver/mariadb
$ docker exec -it nextcloud-db bash root@1e4a060fc56b:/# mysql -h nextcloud-db -u nextcloud -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 3 Server version: 10.1.47-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | nextcloud | +--------------------+ 2 rows in set (0.00 sec) MariaDB [(none)]>
Also das kann ich jetzt bestätigen, das geht auch bei mir. Ich denke durch das neu aufsetzen habe ich Sachen von vorherigen Spielereien entfernt, die Schwierigkeiten gemacht haben. Anders kann ich es mir nicht erklären.
Dann habe ich Nextcloud mit der Version 20 aufgesetzt, aber das oben beschriebene Problem besteht leider immernoch. Heut abend schau ich mir mal den Vorschlag mit Postgres an.
An NextcloudPi wag ich mich grad noch nicht. Da fehlt mir noch etwas das Verständnis, wie ich die normale Anleitung für Docker in ein Docker-Compose umwandle.
Ich denke durch das neu aufsetzen habe ich Sachen von vorherigen Spielereien entfernt, die Schwierigkeiten gemacht haben.
Ich vermute das es noch ein MySQL Volume gab, was er geladen hat, und dann versucht er in der alten fehlerhaften Instanz weiter zu machen.
Aber schön das es schon mal geht, ich würde dann aber bei mariadb bleiben.
Aber schön das es schon mal geht, ich würde dann aber bei mariadb bleiben.
ja ok, das kann ich machen, aber dann komm ich jetzt nicht weiter, da ja immernoch der Fehler SQLSTATE[HY000] [1045] auftritt.
Vielleicht macht ich ja auch was falsch. Um Verständnisprobleme auszuräumen: Die Felder sind doch folgendermaßen zu nutzen:
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=duolctxen
- MYSQL_DATABASE=nextcloud
container_name: nextcloud-db
bzw. / oder (!?)
services:
nextcloud-db:
bzw. / oder (!?)
services:
nextcloud-app:
links:
- nextcloud-db
Soweit mein Verständnis.
Ich habe nun mal das offizielle Image von linuxserver getestet, und damit kann ich mich korrekt auch an der Nextcloud anmelden, und auch über den nextcloud-db Containter komm ich auf drauf.
Du hast hier die Zusatz-Apps weggelassen. Stellen die ein Problem dar? Ich würde sehr gern die Kontakt und Kalenderfunktion nutzen.
Das ist korrekt, kannst du dich mit dem User nextcloud und dem MySQL Passwort im Container anmelden?
zu 3. das ist das Datenverzeichnis von der Nextcloud das wird in Service nextcloud unter dem Volume /var/docker/nextcloud/app:/var/www/html
gespeichert.
Die Datenbank wird in dem Volume des Service nextcloud-db gespeichert /var/docker/nextcloud/database_var:/var/lib/mysql
$ docker exec -it nextcloud-db mysql -u nextcloud -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 10.1.47-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| nextcloud |
+--------------------+
2 rows in set (0.01 sec)
Du hast hier die Zusatz-Apps weggelassen. Stellen die ein Problem dar?
Nein, diese kannst du nachträglich noch einbinden. Ich habe gerade auf dem Raspberry Pi 2 noch mal eine Instanz gestartet. Bei mir läuft es, auch wenn ein paar Optimierungen an der DB notwendig sind, das siehst du dann im Admin Bereich wenn es läuft.
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.1.47-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| nextcloud |
+--------------------+
2 rows in set (0.01 sec)
Ja, geht. Funfact, ich hab heut da ja schonmal geschrieben, dass das geht.
Also das kann ich jetzt bestätigen, das geht auch bei mir.
Als ich es jetzt nach deiner Frage nochmal probiert habe, ging es plötzlich nicht mehr. Dann hab ich die docker-compose down
genommen, den kompletten Ordner /var/docker/nextcloud
gelöscht, wieder docker-compose up -d
und siehe da, es geht wieder. Und dann ahb ich jetzt alles wie immer gemacht auf der NextCloud-Site, Habe aber die empfohlenen Apps nicht installieren lassen. Und ich fasse es nicht, es kam keine Fehlermeldung. Ich muss jetzt wohl nur erstmal den Raspberry etwas in Ruhe lassen. Und deshalb bekommt er jetzt die Nachtruhe dafür. Morgen geb ich nochmal Bescheid.
Also ich hab jetzt noch etwas weiter rumgespielt und konnte auch weitere Apps installieren. Leider habe ich im jetzigen Moment wenig Zeit für umfangreiche Test, aber ich geh jetzt mal vom positiven aus.
Vielen Dank für die Mühe
Hallo, erstmal vielen Dank für deinen Blog/ deine Videos/ dieses Repository.
Ich sitze heut schon den ganzen Tag daran und versuche Traefik und Nextcloud gemeinsam zum Laufen zu bringen.
Setup
~/traefik/docker-compose.yaml sieht so aus:
~/traefik/config/traefik.toml sieht so aus:
~/traefik/config/dynamic.yml sieht so aus:
~/nextcloud/docker-compose.yaml sieht so aus:
Fehlerbeschreibung
Traefik Dashboard
Nextcloud
Leider komme ich bei den Fehlern nicht weiter und würde mich über etwas Rat freuen.