Ich arbeite an einem Angular2-Projekt mit Yii2 (PHP / MySQL) als API-Punkt. Wir müssen die Angular-App in verschiedenen Sprachen für verschiedene Kunden bereitstellen (mithilfe der AOT-Kompilierung aus Angular-CLI).
Was ist der beste Weg, um dies zu erreichen? Ich schaue auf Docker oder Ansible (-container), damit dies funktioniert. Die Beispiele beziehen sich jedoch hauptsächlich auf ein 1: 1-Setup. Aber ich würde ein 1: n brauchen, so etwas wie:
deploy app-de new_costomer prod_server
Wenn eine neue Version der App verfügbar ist, möchte ich außerdem das gesamte Netzwerk mit der neuen App aktualisieren (dies erfordert das Hochladen des kompilierten src / -Ordners AOT und der DB-Migrationsskripte auf der Yii2-Seite).
Im Idealfall würde es so etwas tun wie:
deploy update network-all prod_server
Irgendwelche Ideen?
Zur Verdeutlichung: Ich habe eine Reihe von Kunden, jeder Kunde sollte seinen eigenen Container bekommen (Docker, über Ansible-Container). Es gibt das AOT-kompilierte Angular-Zeug (nur JS) und das PHP-Backend mit MySQL.
Jeder Kunde erhält dieses Setup auf einem Server (also 3 Kunden = 3 Docker-Container mit Angular + PHP + MySQL).
Wir pushen häufig Updates für Angular und PHP (dh der gesamte DIST-Ordner muss hochgeladen werden oder zumindest ein Diff, Migrationsskripte für das PHP / MySQL-Backend müssen ausgeführt werden usw.).
Und das von einem Befehl aus (weil ich natürlich nicht SSH in jedem Container haben möchte, um das alles halb manuell zu erledigen).
Da ich diese Art von Setup noch nie zuvor gemacht habe, möchte ich einige Ideen bekommen, wie dies mit Dingen wie Ansible (oder ähnlichem) erreicht werden kann.