alinnert
Mitglied
Hallo zusammen,
ich hab derzeit ein PHP-Projekt am Laufen, das auch so gut wie fertig ist. Ich häng grad nur an dem Punkt, wie ich es sinnvoll deployen kann.
Die Live-Umgebung ist eine typische PHP-Hosting-Umgebung mit Zugriff über SSH und theoretisch wäre auch Git auf dem System verfügbar.
Der Quellcode liegt auf GitHub und ich hab bereits eine GitHub-Action eingerichtet, die Composer-Dependencies installiert und mit Node und npm die Frontend-Assets kompiliert. Anschließend wird das ganze via rsync auf den Server synchronisiert (neben der tatsächlichen Live-Instanz). Soweit ganz gut.
Jetzt hab ich auf dem Server nur zwei Stände:
a) der neue Stand, der per rsync übertragen wurde
b) der aktuell laufende Live-Stand
In der Ordner-Struktur des Live-Standes befinden sich nun aber diverse laufzeitgenerierte Dateien (Uploads, Caches, Logs etc.). Wie führt man die beiden Stände nun zusammen und das möglichst atomar (= nicht jede Datei einzeln von A nach B kopieren)? Mein aktueller Ansatz wäre ein Shell-Skript zu schreiben, das Ordner kopiert und per rename dann am Stück ersetzt.
Dabei frag ich mich auch, wie sowas bei größeren Projekten oder Deploymentdiensten (z. B. CircleCI) umgesetzt wird. Hat da jemand Erfahrung oder Tipps diesbezüglich?
ich hab derzeit ein PHP-Projekt am Laufen, das auch so gut wie fertig ist. Ich häng grad nur an dem Punkt, wie ich es sinnvoll deployen kann.
Die Live-Umgebung ist eine typische PHP-Hosting-Umgebung mit Zugriff über SSH und theoretisch wäre auch Git auf dem System verfügbar.
Der Quellcode liegt auf GitHub und ich hab bereits eine GitHub-Action eingerichtet, die Composer-Dependencies installiert und mit Node und npm die Frontend-Assets kompiliert. Anschließend wird das ganze via rsync auf den Server synchronisiert (neben der tatsächlichen Live-Instanz). Soweit ganz gut.
Jetzt hab ich auf dem Server nur zwei Stände:
a) der neue Stand, der per rsync übertragen wurde
b) der aktuell laufende Live-Stand
In der Ordner-Struktur des Live-Standes befinden sich nun aber diverse laufzeitgenerierte Dateien (Uploads, Caches, Logs etc.). Wie führt man die beiden Stände nun zusammen und das möglichst atomar (= nicht jede Datei einzeln von A nach B kopieren)? Mein aktueller Ansatz wäre ein Shell-Skript zu schreiben, das Ordner kopiert und per rename dann am Stück ersetzt.
Dabei frag ich mich auch, wie sowas bei größeren Projekten oder Deploymentdiensten (z. B. CircleCI) umgesetzt wird. Hat da jemand Erfahrung oder Tipps diesbezüglich?