Composer Kommandos via Docker direkt ausführen
Mit Docker ist es möglich, composer
und andere Kommandozeilenwerkzeuge wie Drush, Gulp und viele weitere, direkt auszuführen. Im Folgenden beschreibe ich die Möglichkeit am Beispiel von Composer.
Ein neues Projekt kann mit Composer so angelegt werden:
docker run --rm --interactive --tty --user $(id -u):$(id -g) --volume $PWD:/app composer create-project ...
Das --rm
sorgt dafür, dass der Container nach dem Ausführen des Kommandos direkt wieder entfernt wird.
Um beispielsweise ein neues Drupal 8 Projekt im aktuellen Verzeichnis anzulegen, sieht der Befehl wie folgt aus:
docker run --rm --interactive --tty --user $(id -u):$(id -g) --volume $PWD:/app composer create-project some-dir --stability dev --no-interaction
Und weil der docker run
Befehl mit den Parametern ziemlich lang ist, kann dafür auch eine kleine Shell Funktion angelegt werden. Einfach die Funktion in die lokale .bashrc
oder .zshrc
eintragen:
composer () { tty= tty -s && tty=--tty docker run \ $tty \ --interactive \ --rm \ --user $(id -u):$(id -g) \ --volume /etc/passwd:/etc/passwd:ro \ --volume /etc/group:/etc/group:ro \ --volume $(pwd):/app \ composer "$@" }
Danach kann direkt der composer
Befehl auf der Kommandozeile verwendet werden. Ausgeführt wird dieser dann in einem Docker Container und man spart sich die Installation mit den Abhängigkeiten auf der lokalen Maschine.
Das ist besonders praktisch, wenn man öfter composer
Kommandos lokal ausführen möchte.
Weitere Informationen zum Composer Docker Image: Docker Composer image