Nachdem ich mich nun ziemlich ausgibieg mit Docker beschäftigt habe, bin ich zu einer akzeptablen Lösung gekommen:
Die komplette Dateistruktur lässt sich nicht (oder nur mit sehr viel Mühe die in keiner Relation zu dem Nutzen steht) völlig customizen, auf Grund des folgenden Snips in der Compose Datei von Egroupware:
.
. # EGroupware data stored in /var/lib/egroupware on the host
data:
driver_opts:
type: none
o: bind
device: /var/lib/egroupware
Selbst wenn man diesen Pfad aufwändig ändert (was ja an sehr vielen Stellen geschehen müsste, ich glaube auch innerhalb von Rocketchat), hätte man nach wie vor die Situation, daß die Daten der einzelnen Egroupware- Instanzen immer als Unterordner in einem fest definierten elterlichen Verzeichnis liegen werden.
Ich möchte jedoch Daten durch ISPC automatisch auf einer externen FTP Quelle sichern und dazu müssen diese zu sichernden Egroupwareinstanz- Daten halt in Verzeichnisse, die eben kein gemeinsamen elterlichen Ordner haben - zumindest nicht in erster Generation.
Mit den Daten des SQLFS und dem Backupordner geht das jedoch sehr wohl. Dazu legt man ein nicht benanntes Volume und definiert dieses in der socker-compose.overreide.yml:
services:
egroupware:
.# egroupware images to use:
.# - egroupware/egroupware: is the community edition of egroupware
. # - download.egroupware.org/egroupware/epl: is the EPL / subscription version of EGroupware GmbH
.# egroupware tags to use:
.# - latest: recommended is to use tag latest for automatic updates incl. new stable major releases
.# - 20.1: use a branch to keep on latest maintenance release for that branch, but not update automatic to next release
.# - 20.1.20200613: use a maintenance release, to disable automatic updates via watchtower and run them manually
image: egroupware/egroupware:20.1
volumes:
- /var/www/clients/client2/web2/private/egwfiles:/webqatest
Im obigen Beispiel ist der Wirtsordner /var/www/clients/client2/web2/private/egwfiles nun als /webqates innerhalb des Dockers gemounted. Dieser Pfad lässt sich nun im EGW- Setup verwenden, um dort zu entscheiden, wo die Dateien und Backupsgespeichert werden.
Damit sowohl ISPC als auch Egroupware zugreifen können, die Rechte richtig setzen:
chown -R www-data:client2 ./egwfiles
Damit kann ISPC diese auch automatisiert sichern. Gleiches habe ich mit der Datenbank angestellt, indem der Wirt als DB Host fungiert und die DB mittelks ISPC angelegt wurde und ebenfalls in dessen Backup Routine enthalten ist
Es bleiben jedoch einige Daten ausserhalb der Kontrolle von ISPC, die damit nicht durch ISPC quatageprüft oder gesichert werden:
- Die Video- Uploads von Smallparts
- Die Logs & Uploads von Rocketchat
- Der Active Sync Ordner
Damit kann ich aber leben. Ich denke auch nicht daß dies zwangsläufig täglich gesichert werden muss, ein wöchentlicher Cronjob der es über FTP auf eine externe Repo sichert reicht hier doch eigentlich auch.