knuspermagier.de
Since 2005.

Instant Docker-Deployments mit PHPStorm

Heute beschwerte ich mich auf Mastodon kurz darüber, dass Deployment so anstrengend ist, auch wenn ich mit der ganzen Docker-Geschichte doch ganz zufrieden bin. Doch das kurze mal eben was fixen und kurz hochladen fehlt schon, vor allem bei so Kleinigkeiten, wie diesem Blog, wo ich ja gar keine lokale Dev-Umgebung habe, sondern alles direkt auf Live mache.


Also insgesamt bin ich ja schon ganz zufrieden damit, dass alle meine selfhosted sachen halbwegs aufgeräumt in Docker laufen und so, aaaaaber, es nervt mich doch immer noch regelmäßig, dass ich nicht "mal eben" einen kleinen Bug irgendwo fixen kann und mit dem "Upload file"-Shortcut in PHPStorm die Datei einfach hochladen kann. Es ist immer noch dann ein... Deploymentprozess damit verbunden, der zwar automatisiert ist, aber im Zweifelsfall halt doch eine Minute dauert.

Was am Ende wieder dazu führt, dass ich keine Lust habe, Bugs zu fixen, oder irgendetwas mal schnell zu machen.

Vielleicht muss ich mir da nochmal was überlegen, damit ich trotzdem noch komfortablen SFTP Zugriff auf die Files habe für Quickfixes...

Ich nutze ja nicht ohne Grund PHP, das "F5 im Browser drücken und die Änderungen sind einfach da" war es, was mich damals einfach dafür begeistert hat.


Mit Hilfe von ChatGPT kam ich auf folgende tolle Idee. Man kann in PHPStorm External Tools anlegen um Dinge auszuführen. Ich habe nun also folgende Sache konfiguriert:

screenshot-2025-05-29-at-23.38.05.png

Der vollständige Inhalt des Argument-Inputs ist:

DOCKER_HOST=ssh://pwaldhauer@docker docker cp $FilePathRelativeToProjectRoot$ bejou-bejou-1:/app/$FilePathRelativeToProjectRoot$

Das kann man sich dann auf einen Keyboard-Shortcut legen und schwupps, macht er genau das, was ich will – die Datei direkt in den Container schieben und alles ist direkt live. Alle paar Jubeljahre kann ich meine Änderungen dann comitten und in die Registry deployen und pullen und was auch immer, aber ich kann auch gleichzeitig SOFORT INSTANT Dinge tun. Was für eine Wohltat.

(Diesen Umweg über env muss sein, da man für die externen Tools keine ENV-Variablen angeben kann, docker das aber braucht.)

Kommentare, Feedback und andere Anmerkungen?
Schreib mir eine E-Mail 🤓