couchdb

pawi

Benutzer
Mitglied seit
16. Dez 2018
Beiträge
8
Punkte für Reaktionen
0
Punkte
1
Hallo,

ich möchte gerne couchdb (Datenbank Sync) über docker auf DS412+ betreiben.
Leider stoppt der container sofort, vermutlich mit dieser Fehlermeldung:

ERROR: CouchDB 3.0+ will no longer run in "Admin Party" mode. You *MUST* specify an admin user and password, either via your own .ini file mapped into the container at /opt/couchdb/etc/local.ini or inside /opt/couchdb/etc/local.d, or with "-e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password" to set it via "docker run".

Ich weiss nicht, wie ich das beheben kann!?
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.476
Punkte für Reaktionen
1.087
Punkte
194
So wie ich das lese, musst du jetzt zusätzlich in den Enviroments einen Adminuser samt Passwort mitgeben.
The node will also start in admin party mode. Be sure to create an admin user! The Cluster Setup Wizard or the Cluster Setup API will do this for you.

You can also use the two environment variables COUCHDB_USER and COUCHDB_PASSWORD to set up an admin user:

$ docker run -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password -d couchdb
Note that if you are setting up a clustered CouchDB, you will want to pre-hash this password and use the identical hashed text across all nodes to ensure sessions work correctly when a load balancer is placed in front of the cluster. Hashing can be accomplished by running the container with the /opt/couchdb/etc/local.d directory mounted as a volume, allowing CouchDB to hash the password you set, then copying out the hashed version and using this value in the future.

https://hub.docker.com/_/couchdb
 

pawi

Benutzer
Mitglied seit
16. Dez 2018
Beiträge
8
Punkte für Reaktionen
0
Punkte
1
Ja, das dachte ich mir schon und hab auch mit dem Terminal (ssh auf meine Synology) folgendes probiert:
docker run -e COUCHDB_USER=<ich> -e COUCHDB_PASSWORD=<meinPasswort> -d couchdb
user und passwort entsprechend Synology!
Das wurde aber mit dem Fehler, dass das docker run cmd einen Parameter braucht.
Das verstehe ich nicht!
Wo und wie kann ich die env. vars denn setzen?
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.152
Punkte für Reaktionen
741
Punkte
154
Hast Du Sonderzeichen im Passwort? Dann setz' doch mal das Passwort in Anführungszeichen.

Das wäre so meine erste Vermutung...
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.476
Punkte für Reaktionen
1.087
Punkte
194
Wo und wie kann ich die env. vars denn setzen?
Das geht auch über die GUI: Wenn der Container beendet ist, diesen bearbeiten und unter "Umgebung" die variable manuell setzen.
 

pawi

Benutzer
Mitglied seit
16. Dez 2018
Beiträge
8
Punkte für Reaktionen
0
Punkte
1
Danke Ulfhednir!!
Das war DER Tip!
Der Container läuft und ich kann auch schon darüber synchronisieren!

Ich blicke aber immer noch nicht durch, was die Einstellung für "Volumes" bei der Erstellung des Containers bedeutet.
Ich habe auf der Synology einen Ordner "couchdb/data angelegt und bei "Ordner/Data" diesen angegeben. Bei Datei habe ich "/data" eingegeben (das hat mir mal jemand gesagt!).
Ich sehe aber nicht, dass hier irgendetwas abgelegt wurde?
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.476
Punkte für Reaktionen
1.087
Punkte
194
Ich habe auf der Synology einen Ordner "couchdb/data angelegt und bei "Ordner/Data" diesen angegeben. Bei Datei habe ich "/data" eingegeben (das hat mir mal jemand gesagt!).
Ich behaupte jetzt einfach mal, dass die angegebenen Parameter falsch sind. Richtig wäre wohl:
/docker/couchdb/data:/opt/couchdb/data

Zusätzlich dazu gäbe es noch:
/docker/couchdb/etc:/opt/couchdb/etc/local.d

Steht aber alles bei couchdb beschrieben.

Die Angabe der Verzeichnisse, idealerweise bereits während der Einrichtung, dient der Einrichtung eines persistenten Speichers.
Gemäß des "Docker-Prinzips" gehen die Daten innerhalb eines Containers nach dem Löschen des Containers verloren. Das ist ein gewisser Nachteil, wenn man bsw. ein Container-Update durchführt. (Container löschen -> Neu erstellen)
Hier kommt der persistente Speicher ins Spiel: Du kannst darüber Konfigurationsdaten oder Datenbanken auslagern. Beim Neuerstellen kannst du dann auf die selben Daten zurückgreifen.

Kannst du hier etwas detaillierter nachlesen:
https://madafa.de/blog/docker-persistente-daten-und-volumen/
 

pawi

Benutzer
Mitglied seit
16. Dez 2018
Beiträge
8
Punkte für Reaktionen
0
Punkte
1
Vielen Dank für den Link, den ich mir angeschaut hab.
Ich hab mit dem Befehl "docker container inspect my_couchdb" mir auch die Volume-Angabe gelistet:

"Volumes": {
"/opt/couchdb/data": {}
},
"WorkingDir": "",
Ich gehe davon aus, dass hier mein erstellter und in der Erstellung eingegebener Pfad "/volume1/docker/couchdb/data" gemeint ist.
Was bedeutet die Angabe /opt/?

Allerdings finde ich in "/volume1/docker/couchdb/data" keine Daten!?
Ich teste gerade einen Sync zwischen zwei Geräten, bekomme aber leider am Schluß Fehler.
(Ich hatte vorher couchdb auf einem Mac laufen und da lief es ohne Probleme).
Kann das an unterschiedlichen Version von couchdb liegen (alt 2.3.1, neu 3.2.0)?
 


 

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