Comandos personalizados en DDEV

ddev2.jpg
Solucionex
13
Mar 20

En un post anterior ya hablamos de las bondades de utilizar DDEV como herramienta de desarrollo en local basada en Docker. Por defecto, DDEV nos configura un proyecto para Drupal 8 con algunas herramientas, como es el caso del gestor de dependencias Composer. Cada vez que necesitamos ejecutar composer no hace falta que lo ejecutemos de la siguiente manera:

# Desde el anfitrión con:
ddev exec composer

# Desde el contenedor con:
ddev ssh
composer

Sino que DDEV ya nos tiene preparado un comando para ejecutar Composer directamente desde la máquina anfitriona:

ddev composer

Pero ¿Y si queremos lanzar de la misma manera herramientas habituales como Drush o Drupal Console? El equipo de DDEV también nos ofrece una manera fácil de añadir comandos para hacer nuestro workflow más ameno.

Para añadir nuevos comandos a nuestro proyecto DDEV solamente tenemos que hacer algo tan simple como crear el comando que queremos ejecutar en la carpeta commands/ dentro del directorio .ddev/. Veámoslo con más detalle:

Situándonos en la raíz del proyecto nos dirigimos al directorio commands/:

cd .ddev/commands

Dentro nos vamos a encontrar una carpeta para cada servicio que, por defecto, DDEV nos provee. A nosotros, en este caso, nos interesa el directorio web/ que es donde se encuentra corriendo el servidor con nuestra aplicación Drupal 8.

cd web

Una vez en el directorio web/, DDEV nos da como ejemplo el comando drush, drush.example. Solamente tenemos que copiar y renombrar:

mv drush.example drush

Si lo abrimos vamos a ver que se trata de un script bash que ejecuta drush con los flags y argumentos que le pasemos. Vamos a hacer lo mismo para Drupal Console:

touch drupal
nano drupal

Y escribimos las siguientes líneas:

#!/bin/bash

## Description: Run Drupal onsole inside the web container
## Usage: drupal [flags] [args]

drupal $@

Guardamos y reiniciamos DDEV:

ddev restart

Ahora cada vez que queramos ejecutar Drush o Drupal Console desde el dispositivo anfitrión basta con utilizar los comandos:

ddev drush
ddev drupal