Ich frage mich über die beste Architektur für eine Docker-basierte Entwicklungsumgebung mit einem LAMP-Stack.Docker-basierte Entwicklungsumgebung für mehrere Projekte
Anforderungen
- mehrere Projekte parallel
- Die meisten Projekte werden mit dem gleichen LAMP-Stack (der Einfachheit halber nehmen wir an, dass alle Projekte teilen sich den gleichen Stack und Konfiguration)
- Die Arbeiten an Host läuft unter Windows + VBox + Docker Toolbox (zB Boot2Docker)
Aktuelle Architektur
- Eine gemeinsame Entwicklungsumgebung ausgeführt wird mehrere Container (Web, db, persistente Daten ..) mit vhosts Konfiguration pro Seite
- Verwenden von Skripts/Jenkins Container Setup neues Projekt (neue DB, vhost Konfiguration ..)
- Ausführen von benutzerdefinierten Samba Container, die Daten mit dem Windows-Rechner (IDE läuft unter Windows)
Wie immer gibt es Vor-teilen. und Nachteile. Obwohl dies für die Wartung recht einfach ist, können wir ein spezifisches Projekt mit einer docker-compose.yml -Datei nicht wirklich bereitstellen, und wir können auch nicht alle Vorteile von "micro services" wie dem Ersetzen von PHP/MySQL-Version für eine bestimmte Site
Die Frage ist, wie können wir eine pro-Projekt docker-compose.yml-Datei verwenden, aber immer noch mehrere Projekte gleichzeitig ausgeführt werden (da alle Projekte Port 80 verwenden). Wird es besser sein (und ist es sogar möglich?), Zufällige Ports pro Projekt zu verwenden und eine Proxy-Schicht auf diesen Webcontainern auszuführen?
Weitere Optionen oder allgemeine Entwurfsmuster für diesen Anwendungsfall?
Danke.
Ich bin nicht vertraut mit Rancher, aber von ihrer Dokumentation sprechen sie meist über Produktionsumgebungen. Warum magst du nicht die erste Lösung, die du angeboten hast? – Rotem
Ja, aber Sie können Stacks verwenden, die aus einem oder mehreren Hosts bestehen und es liegt ganz bei Ihnen, wofür Sie es verwenden möchten (dev, pre-prod, prod). Sie können jedoch versuchen, wie Sie mit verschiedenen Docker komponieren Dateien für verschiedene Projekte erwähnt haben und sehen, wie es geht – Sergiu