Hallo,
heute wirds wohl nix mehr mit dem docker-compose Video, aber ich habe mal begonnen, mich dem von @morpweb im anderen Diskussionfaden formulierten komplexitätsproblem zu nähern.
Das hängt eng mit dem Problem zusammen, dass wir „anwenden“ und lernen „vermischen“. Die Entscheidung für Docker ist tatsächlich weitgehend gefallen, weil das Mailsystem in Version 7 höchstwahrscheinlich als Docker Container daherkommt - aber dort derzeit auch eher unmodular - hatten wir in Essen drüber diskutiert.
Wir müssen es aber eben schaffen, den Einsatz von (unseren Standard-)Containern in linuxmuster gut und klar zu strukturieren - es kann IMHO am Ende nicht sein, dass jeder Container mit irgendeinem Shell/Python whatever Skript auf schwer durchschaubare Weise konfiguriert und gestartet wird.
Darum habe ich mal ein (derzeit extremn rudimentäres Skript gemacht, das aus einem nackten Ubuntu 16.04 + apt-get install git einen "linuxmuster-docker-Host macht:
Das macht derzeit im Prinzip folgendes.
- Installiert die neueste Version von docker-ce aus den docker.io Repos
- Installiert das dazu passende docker-compose
- Legt einen Benutzer „dockeruser“ an, der in der Gruppe „docker“ ist. Dieser Benutzer steuert nachher die Container, damit man das nicht als root machen muss - das ist nämlich mit wenig Nachdenken offensichtlich keine gute Idee.
- Individualisiert die ssh-host-keys.
Nun kann man z.B. im Home des dockeruser systematisch Informationen und compose-Dateien für Container ablegen, die man auf diesem Docker-Host laufen lassen will. Wie die Konventionen da genau aussehen sollten, muss man sicher erst mal ausprobieren.
Ein erster Container sollte dabei wohl sicherlich der Reverse Proxy sein.
Alle (offiziellen) Container sollten vom Dockerhub aus dem Repo linuxmuster/XYZ kommen und nicht direkt vom Upstream. Der Zwischenschritt macht zwar ein wenig Arbeit, aber so können wir immer erst mal testen, ob Upstream Updates tun, bevor das an die linuxmuster-Benutzer geht.
Beispiel: Ich nehme (als Entwickler/Betreuer eines Images) eben das nextcloud Image und baue daraus ein linuxmuster/nextcloud Image, im einfachsten Fall durch bloßes „kopieren“ im FROM des Dockerfiles.
Wenn es ein Nextcloud Update gibt, baue ich das linuxmuster/nextcloud als Entwickler neu und teste das - und erst wenn ich sehe, dass das wirklich tut, pushe ich das ins linuxmuster-Repo in den Dockerhub, von wo aus es über die offizielle Updatefunktion von linuxmuster.net an die Anwender geht.
Zusammenfassend: Klare Struktur zur Informationshaltung auf unserem linuxmuster Dockerhost, Updates für offizielle Container nur von uns.
Das Video hier zeigt, wie man den Demo Host auf das linuxmuster-dockerhost Skript umstellt:
VG
Frank