Vorteile von Containern

Container unter Docker (es gibt wohl auch noch andere Lösungen) haben ein paar schwer zu schlagende Vorteile. Einer davon ist die Modularität, ein anderer die Schnelligkeit, ein dritter die Schlankheit. Die Abgrenzung zu virtuellen Maschinen und wann was von Vorteil ist, habe ich an anderer Stelle diskutiert. (ToDo: Muss noch in dieses Wiki eingepflegt werden).

Aber die wahren Stärken spielen Container erst aus wenn Docker Compose verwendet wird. Das sind Zusammenstellungen von Containern zu einer bestimmten "Rechnerkonfiguration". Zum Beispiel brauchen die Tests zu BwPostman nicht nur einen Webserver und einen Datenbankserver, sondern es ist auch ein Mailserver nötig, damit die Newsletter beim Versand nicht im Nirwana verschwinden sondern auch noch angesehen werden können. Sie müssen "das Haus" nicht verlassen, was den Provider nicht ärgert…

Die einzige echte "Variable" ist der Webserver, genauer gesagt, die php-Version, mit der der Webserver läuft. So kann man mit verschiedenen Images (die Basis der Container, quasi ein kompilierter Container) für den Webserver, aber nur je einem Image für DB-Server und Mail-Server drei verschiedene Konfigurationen mit Compose anlegen. Wenn man mit der Namensgebung der Images schlau genug vor geht, dann kann man das sogar mit einer Konfiguration per Compose und entsprechenden Umgebungsvariablen regeln. Was dann wieder dafür sorgt, dass man die Tests mit diesen drei Konfigurationen in einer Schleife laufen lassen kann, in der die Umgebungsvariable nur jedes Mal neu gesetzt wird.