Configurar drush con drupal y docker-compose

Drupal es un CMS muy potente para la creacion de sitios web o MVP de aplicaciones, sin embargo algunas operaciones de mantenimiento son mas sencillas de realizar desde la consola de comandos o directamente ser automatizadas en el servidor. Para poder realizar estas funciones utilizamos drush, y en este articulo aprenderemos a usarlo con docker-compose.

Docker-compose

Docker compose es una herramienta para configurar entornos de desarrollo o produccion a traves de un archivo de definicion YML. En este archivo podemos definir toda la infraestructura de servidores que se necesita para un proyecto en especifico, en este particular para un sitio drupal.

Por ejemplo, este seria un archivo docker-compose.yml para drupal

version: '2'

services:
  db:
    image: mysql:5.7
    environment:
      - MYSQL_ALLOW_EMPTY_PASSWORD=true

  drush:
    image: drush/drush:7
    volumes:
       - wwwroot:/app/
       - ./:/app/sites/default/

  web:
    image: drupal:7
    volumes:
      - wwwroot:/var/www/html/
      - ./:/var/www/html/sites/default/
    ports:
      - 80:80
    depends_on:
      - db
    stdin_open: true
    tty: true

volumes:
  wwwroot: {}

En este archivo, definimos 3 servicios:

  • DB, aca iniciara el motor de base de datos necesario para que drupal se conecte.
  • WEB, aca iniciara el servidor apache con una instalacion base de drupal
  • DRUSH, este servicio no es ejecutable, sino que nos permite ejecutar el comando drush en la misma carpeta de codigo que usa el servicio WEB.

Para iniciar el servidor de drupal debemos ejecutar el comando

docker-compose up -d web 

Este comando nos permite arrancar el servicio WEB y el servicio DB ( el cual esta ligado con WEB depends_on )

Para ejecutar un comando drush, usamos el siguiente comando

docker-compose run --rm drush cc all 

Este comando iniciar una instancia del servicio DRUSH, ejecuta el comando drush cc all y elimina la instancia.

Add new comment