Versucht man unter Plesk mit installierter Docker Extension ein lokal erstelltes Image zu installieren, kann es sein daß der Vorgang mit der Meldung “Error: {“message”:”No command specified”} abbricht. Leider ein sehr nerviger Bug, der auch im aktuellen Plesk Obsidian präsent ist.
Dieser Artikel zeigt, wie man Plesk trotzdem das eigene Docker Image unterjubeln kann.
Die Lösung: Plesk ein Docker Image per Kommandozeile unterschieben
Es gibt 2 Möglichkeiten, ein Docker Image welches nicht von Docker Hub kommt in Plesk zu importieren. Voraussetzung ist, daß wir uns per SSH am Server anmelden und uns Root-Rechte verschaffen:
1 2 |
ssh -l USERNAME SERVERNAME sudo bash |
Wir legen einen Ordner auf dem zugehörigen Webspace an, damit evtl. Volumes direkt dort erzeugt werden:
1 2 3 |
cd /var/www/vhosts/DOMAINAME mkdir -p _docker/CONTAINERNAME cd _docker/CONTAINERNAME |
1. Docker Image auf dem Server bauen
Nun geben wir genau das ein, was wir auch lokal benutzen um unser Image zu bauen, z.B.
1 |
docker run -p "8080:80" -p "8306:3306" -v ${PWD}/app:/app -v ${PWD}/mysql:/var/lib/mysql mattrayner/lamp:latest-1604-php5 |
2. Docker Image lokal exportieren und auf dem Server importieren
Diese Alternative ist etwas aufwändiger. Zuerst exportieren wir unser Image auf unserem lokalen Rechner.
Zuerst benötigen wir die Docker Image ID, Diese erhalten wir während ein Container läuft z.B. mit
1 |
docker images ls |
Danach exportieren wir das Docker Image mit:
1 |
docker save IMAGE_ID | gzip > IMAGENAME.tgz |
Die Imagedatei laden wird dann per FTP auf den Server. Dort importieren wir das Docker Image dann mit
1 |
docker load -i IMAGE.tgz |
Zurück zu Plesk
Wechseln wir nun zu Plesk, so können wir das importierte Image dort wie gewohnt konfigurieren :-)