Mariadb vom Host in Docker Container

Status
Für weitere Antworten geschlossen.

unrealSpeedy

Benutzer
Mitglied seit
30. Mrz 2016
Beiträge
95
Punkte für Reaktionen
13
Punkte
8
Hallo zusammen,

ich habe ein Problem, bei dem ich aktuell nicht mehr weiterkomme.

Ausgangssituation:
Ich betreibe auf einer DS ein DSM, auf dem MariaDB5 und 10 laufen. Außerdem läuft Docker und in Docker eine GitLab Instanz sowie ein GitLab-Runner, der das Deployment von Anwendungen übernimmt.
Zum Deplomentprozess gehört dazu, dass der Runner einen Datenbank-Dump vom Hostsystem (MariaDB) zeiht und diesen später wieder einspielt.
Bisher hatte ich in der PATH-Variable /usr/bin vom Host "gemountet", sodass der Runner im Container auf MariaDB und die Datenbank des Hosts zugreifen konnte (usr/bin/mysqldump).

Auf einmal klappt diese Konstellation jedoch nicht mehr.
/usr/bin wird nicht (vollständig) eingebunden, sodass /usr/bin/mysqldump im Container nicht verfügbar ist. Per Konsole auf dem Hostsystem klappt das nach wie vor problemlos und mysqldump lässt sich unter dem entsprechenden Pfad aufrufen.

Hat vielleicht Jemand eine Idee?

Danke und beste Grüße
unrealSpeedy
 

DrDeath

Benutzer
Mitglied seit
31. Aug 2018
Beiträge
189
Punkte für Reaktionen
71
Punkte
34
Wie springst Du denn in den Container um ein Datenbank Backup durchzuführen?

Bei mir funktioniert das auf diesem Weg:

als User "mysql",
der Container heißt "mariadb",
Datenbank User "nextcloud",
Passwort "geheim",
Datenbank die gesichert werden soll "nextcloud",
Export Verzeichnis : /var/lib/mysql/
Nach dem Export move to "/volume1/docker/mariaDB/"
Nach dem move noch Owner:Gruppe auf "http:http" anpassen
Fertig.


Rich (BBCode):
docker exec \
  -u mysql \
  -it mariadb \
  sh -c 'mysqldump --single-transaction \
     -h localhost \
     -u nextcloud \
     -pgeheim \
     nextcloud > \
     /var/lib/mysql/nextcloud-sqlbkp_`date +"%Y%m%d"`.bak' \
     && mv /volume1/docker/mariaDB/nextcloud-sqlbkp_`date +"%Y%m%d"`.bak /volume1/web \
     && chown http:http /volume1/web/nextcloud-sqlbkp_`date +"%Y%m%d"`.bak



Edit: Sorry, ich hatte Dich falsch verstanden......
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.468
Punkte für Reaktionen
356
Punkte
103
Symlinks, die ausserhalb eines Volumes liegen werde nicht aufgelöst, da das Ziel des Symlinks innerhalb des Containers nicht zur Verfügung steht.

1. mit ssh einloggen
2. sudo -i # root privilegien
3. ll /usr/bin

Wenn das Ziel des Symlinks ausserhalb /usr/bin liegt, dann kannst Du versuchen das Ziel als Volume zu mounten und vom Containe raus auszurufen. Das verwenden von Binar-Dateien vom Host innerhalb des Containers klappt nur dann, wenn a) alle Bibliothek-Abhängigkeiten statisch reinkompiliert sind oder b) die Bibliothek-Abhängigkeiten dynamisch geladen werden und diese in einer kompatiblen Version im Container vorliegen.
 
Status
Für weitere Antworten geschlossen.
 

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