Comment lancer Drush sans rentrer dans votre container Docker ?

Aujourd'hui, je me suis amusée à créer une petite fonction Vim/Nvim, qui me permet de lancer une commande Drush sans sortir de mon IDE favoris

 

function! s:drush(Param)
   execute "! ddrush --no-ansi" a:Param
endfunction

command! -nargs=1 Drush call s:drush(<f-args>)

 

Au départ, j'étais partie pour exécuter la commande docker-compose exec -T php drush. Le souci avec cette commande, c'est que, si le nom de mon container php change, ça ne va plus fonctionner.

Du coup, j'ai créer un petit wrapper qui s'appelle ddrush

#!/bin/bash

docker-compose ps -q 2>/dev/null | while read cid ; do
  docker exec -t $cid drush > /dev/null
  if [ $? -eq 0 ]; then
    docker exec -t $cid drush $@
    exit 0
  fi
done

 

Ce script va rechercher dans tout les containers de votre projet, si Drush est présent pour ensuite l’exécuter dans le bon container.