0

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.

Antwort

1

Die kurze Antwort ist ja. Docker weist standardmäßig zufällige Ports zu, wenn kein Port angegeben ist. Für Mapping würde ich verwenden: https://github.com/jwilder/nginx-proxy

Sie so etwas wie project1.yml project2.yml haben können .... und die Container wie etwas zu beginnen wäre:

docker-comppse -f project1.yml up 

Allerdings bin ich nicht sicher, Warum würdest du das versuchen? Sie könnten etwas wie Rancher verwenden und meinen Entwicklungshost in mehrere kleine Entwicklungsumgebungen aufteilen.

+0

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

+1

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

Verwandte Themen