Mariadb vom Host in Docker Container

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

unrealSpeedy

Benutzer
Registriert
30. März 2016
Beiträge
96
Reaktionspunkte
14
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
 
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......
 
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