Docker-Images

Bei der Umsetzung des Projekts sind viele Softwarekomponenten in Docker-Container verpackt worden, um ein einfaches Deployment zu erreichen. Die Baupläne (Dockerfiles) inkl. der benötigten Ressourcen (z. B. Konfigurationsdateien und zusätzliche Skripte) liegen auf Github. Die Images werden automatisiert vom Docker Hub gebaut und stehen damit immer in der aktuellen Version zum Download bereit.

Hier die bisher verfügbaren Docker-Images.

base-supervisor

Dieses Image ist das Basis-Image für (fast) alle anderen Images. Es basiert auf Ubuntu 16.04 LTS und bringt den Init-Service supervisord mit, mit dem mehrere andere Services in einem Container verwaltet werden können. Ein Startup-Skript auf Basis von Python 3, das mit Plugins um zusätzlich auszuführenden Startup-Code erweitert werden kann, sowie eine Sammlung häufig gebrauchter Funktionen erleichtert die Entwicklung von Startup-Skripten in abgeleiteten Images.

Alle verwendeten Pakete kommen direkt über über das Ubuntu-Repository. Pakete von Drittanbietern kommen nicht zum Einsatz.

Quellcode: Github
Docker-Image: Docker Hub

nginx-php7

Dieses Image erweitert das base-supervisor Image um einen NGINX-Webserver sowie PHP7-FPM und bildet damit eine gemeinsame Basis für Container mit Webservices und Webapplikationen. Die Performance von PHP7-FPM (sowie der damit verbundene Ressourcenverbrauch) lässt sich über Umgebungsvariablen steuern. So lassen sich Websites mit viel Traffic leicht mit mehr Ressourcen versorgen, während einfache Administrationstools mit einem Minimum an Ressourcen ausgestattet werden können.

Alle verwendeten Pakete kommen direkt über über das Ubuntu-Repository. Pakete von Drittanbietern kommen nicht zum Einsatz.

Quellcode: Github
Docker-Image: Docker Hub

wordpress

Dieses Image erweitert das nginx-php7 Image um die neueste Version von WordPress 4.x, die direkt von GitHub gezogen wird, und konfiguriert NGINX und PHP7 so, dass auch größere Dateien (bis 128 MB) auf das Blog hochgeladen werden können.

Quellcode: Github
Docker-Image: Docker Hub

strongswan

Dieses Image erweitert das base-supervisor Image um die IPSec-VPN-Software StrongSwan (und einige Hilfsdienste) und bietet mittels eines IKEv2-fähigen IPSec-Clients die Möglichkeit, einen VPN-Tunnel direkt in den Docker-Stack hinein zu öffnen und gesichert auf interne Administrationsdienste zuzugreifen. Diese Isolation reduziert stark die Angriffsvektoren, die Hacker nutzen können, um in das System einzudringen, da nur absolut für den öffentlichen Betrieb notwendige Dienste auch öffentlich zugänglich sind.

Quellcode: Github
Docker-Image: Docker Hub

zimbra

Dieses Image basiert auf Ubuntu 16.04 LTS und installiert auf einem eingebundenen Docker-Volume eine eigenständige Ubuntu-Installation (ebenfalls 16.04 LTS) inkl. Zimbra Collaboration Suite (Free OpenSource Version), eine komplette Groupware mit Mail-Server, synchronisierbaren Adressbüchern, Kalendern, Task-Management und vielem mehr. Entgegen der üblichen Praxis, Software mit einem neuen Image zu aktualisieren, muss man bei diesem Image nach der initialen Installation der „inneren“ Ubuntu-Installation (inkl. Zimbra) für dessen Wartung sorgen. Vom Handling her ähnelt dieses Docker Image mehr einer virtuellen Maschine oder einem LXD Container als einem Docker-Container. Dieser Weg ist (leider) notwendig, da Zimbra bei der Installation auch Änderungen am System vornimmt, die persistent gemacht werden müssen, um eine update-fähige Installation zu erhalten. Das Image sorgt ferner für eine sichere Grundkonfiguration, die Einstellung der Firewall sowie die Einrichtung des ACME Clients certbot, der Zimbra nach der Installation dauerhaft und kostenfrei mit X.509 Zertifikaten der LetsEncrypt CA versorgt.

Quellcode: Github
Docker-Image: Docker Hub