Autor: Andreas Hettmann, 01/2019
Prinzip der Installation als Docker auf Synology
1) Docker installieren
2) Unter "Registrierung" passendes "Abbild" also Image ziehen (hier: cptactionhank/atlassian-confluence, dabei immer :latest nehmen)
3) das Image "Starten" erzeugt einen Container, der noch konfiguriert werden muß - die meiste Config stimmt aber schon
4) Port-Einstellungen lokaler Port vs. Container Port persistieren

Anstelle der 32780/81 steht default "Automatic", das ist großer Mist, weil dann bei jedem Start ein neuer Port zugewiesen wird. Damit kommt Confluence erstens nicht klar (siehe Base URL) und zweitens weißt Du nie, wo Du Confluence erreichen kannst...
5) JETZT KOMMT DER GROSSE TRICK :-) -> Volume Bindings für zu persistierende Daten erstellen
- sonst ist nach Löschen des Containers und Neuerstellen alles weg -> auf der DockerHub-Seite des Images nachschauen, was bei den Docker-Scripten unter "VOLUME" steht. Bsp:
https://hub.docker.com/r/cptactionhank/atlassian-confluence/dockerfile
VOLUME ["/var/atlassian/confluence", "/opt/atlassian/confluence/logs"]
Auf Syno unter Directory "docker" Subdirs erstellen und so verbinden:

- Die Verzeichnisse erstmal komplett 777 für Everyone stellen, kann ja zur Not hinterher noch gradegezogen werden.
- Keine Ressourcenbeschränkungen für den Container notwendig, Docker klärt das alleine. Mit BTRFS gibts evtl. sogar mit Beschränkungen einen bösen Bug.
- Unter Links und Network braucht nix eingestellt zu werden. Links braucht man, wenn mehrere Container miteinander kommunizieren sollen (z.B. MariaDB auch im Container). Wie das dann geht - k.A. ...
6) Automatischen Restart auswählen, sonst muß jedesmal alles händisch gestartet werden
...und ab gehts, Confluence kann gestartet und vollständig eingerichtet werden. Containerstart dauert auf der 918 ca. 5min (1512 ca. 10min), danach ist Confluence hier z.B. unter [localhost]:32780 erreichbar (Login-Page). Alles was an Files installationsspezifisch ist, liegt unter dem docker-Verzeichnis in den Subdirs.

7) Probe aufs Exempel (Emergency-Recovery)
- Container anhalten (Aktion...).
- Einstellungen exportieren (nur Containereinstellungen - ergibt ein ca. 5KB großes .json) und gut sichern (gehört zum Backup).
- Container löschen.
- Image löschen.
- Docker deinstallieren (muß nicht sein :-), dabei NICHT das docker-Verzeichnis löschen lassen.
- Docker reinstallieren.
- Image aus dem Repo ziehen (ich habs mir lokal gespeichert, um bei genau der Version bleiben zu können -> Abbild - Exportieren -> .tar, ist nur 750MB groß).
- Container - Einstellungen - Importieren -> das json-File mit den Container-Einstellungen von oben auswählen -> erzeugt automatisch den neuen Container mit den vollständigen und richtigen Einstellungen -> Container starten, Fertsch - alles ist wieder da wie soeben hinterlassen!
- Hyperbackup: mitsichern einstellen für docker-Verzeichnis, MariaDB und das json-File nicht vergessen.
- Wenn der Container lange nicht benutzt worden ist, räumt der sich ziemlich auf - z.B. nach 3 Tagen Nichtbenutzung belegt er nur noch ca. 500MB anstelle 2-3G. Dann dauert es ein paar Sekunden länger, bis sich die Login-Page aufbaut.
Tips und Tricks
- Und: anstelle Bobbies SQL nehme ich PocketQuery.
- Und: die ServerID und der Confluence License String haben nix miteinander zu tun. Offensichtlich telefoniert Confluence nach Hause und stellt so sicher, dass die Lizenz nur auf einem Server läuft. Will mal noch testen, was Confluence sagt, wenn ich vor dem Serverrestart den INet-Zugang für die Syno sperre...
- Und: Container-Shortcut auf Desktop braucht man nicht auswählen. Ist z.B. doof, wenn man Docker und den Shortcut in eine Desktop-Gruppe zieht, dann wird bei jedem weiteren Containerstart wieder ein neuer Shortcut angelegt, der auch nicht vom Desktop gelöscht werden kann. Geht erst mit Deinstall von Docker wieder weg...