Configuración de un Entorno de Desarrollo Local para WordPress con Docker

Bienvenido a este artículo, donde aprenderás paso a paso cómo configurar un entorno de desarrollo local para WordPress utilizando Docker. No hace falta que tengas grandes conocimientos técnicos, te voy a guiar en todo el proceso.

Docker, para aquellos que no lo conozcan, es una plataforma que permite a los desarrolladores crear, probar y desplegar aplicaciones rápidamente mediante el uso de contenedores. Un contenedor es una versión ligera y autónoma de un sistema operativo que contiene todo lo necesario para ejecutar una aplicación: el código, las bibliotecas de sistema, los archivos de configuración y mucho más.

Para empezar, lo primero que debes hacer es descargar e instalar Docker. Asegúrate de tener Docker Desktop si estás en Windows o Mac. Si usas Linux, entonces Docker Engine será tu elección. El proceso de instalación varía en cada sistema operativo, pero hay mucha documentación en línea para ayudarte. Recuerda que ya deberías tener WordPress instalado, así que no vamos a entrar en eso ahora.

Contenido

Creando tu primer contenedor de Docker para WordPress

Bien, ya tenemos Docker instalado. Ahora, vamos a crear un contenedor para alojar nuestro WordPress de desarrollo. Los contenedores Docker son como mini-ordenadores que funcionan de forma independiente, por lo que podemos tener varios contenedores ejecutándose al mismo tiempo sin que interfieran entre ellos.

Para crear un contenedor de Docker para WordPress, necesitamos un archivo llamado docker-compose.yml. Este archivo contiene las instrucciones para crear y configurar nuestro contenedor. En el caso de WordPress, necesitaremos dos contenedores: uno para el propio WordPress y otro para la base de datos MySQL que WordPress utiliza.

Crea un nuevo directorio en tu computadora donde te gustaría almacenar tu sitio WordPress local, por ejemplo mi-sitio-wordpress. En este directorio, crea un nuevo archivo llamado docker-compose.yml y abre este archivo en tu editor de texto favorito.

Vamos a añadir el siguiente código al archivo docker-compose.yml:

version: '3.3'

services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: algunapassword
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data: {}

Este código crea dos servicios: db y wordpress. El servicio db usa la imagen mysql:5.7 de Docker Hub y configura una base de datos llamada wordpress con el usuario wordpress y la contraseña wordpress. El servicio wordpress depende del servicio db y usa la imagen wordpress:latest de Docker Hub. Este servicio mapea el puerto 8000 de tu máquina al puerto 80 del contenedor de Docker, lo que significa que podrás acceder a tu sitio WordPress local en http://localhost:8000.

Arrancando tu entorno de desarrollo local de WordPress

Con tu docker-compose.yml listo, ya puedes arrancar tu entorno de desarrollo local de WordPress. ¿Cómo? Muy sencillo, abre una terminal, dirígete a la carpeta donde se encuentra tu archivo docker-compose.yml y ejecuta el siguiente comando:

docker-compose up -d

Con este comando le estás diciendo a Docker que inicie los servicios definidos en el archivo docker-compose.yml y que los mantenga ejecutándose en segundo plano.

Ahora, si abres tu navegador y vas a http://localhost:8000, deberías ver la pantalla de instalación de WordPress. ¡Felicidades, ya tienes tu entorno de desarrollo local de WordPress funcionando con Docker!

Administrando tus contenedores Docker

Una vez que tienes tu entorno de desarrollo de WordPress en funcionamiento, es probable que quieras saber cómo administrar tus contenedores Docker. Aquí te dejo algunos comandos útiles que te facilitarán la vida.

Para detener tus contenedores Docker, simplemente ejecuta:

docker-compose down

Este comando detiene y elimina los contenedores, pero no te preocupes, tu sitio de WordPress y tus datos de la base de datos permanecerán intactos ya que los hemos almacenado en volúmenes, que son independientes de los contenedores.

Si quieres ver el estado de tus contenedores Docker, puedes usar el comando:

docker-compose ps

Este comando muestra una lista de tus contenedores en ejecución junto con su estado. Muy útil para comprobar si todo está funcionando correctamente.

Y si por alguna razón necesitas reiniciar tus contenedores, el comando es tan sencillo como:

docker-compose restart

Como puedes ver, Docker hace que sea realmente fácil administrar tu entorno de desarrollo de WordPress.

Beneficios de utilizar Docker para WordPress

Hasta ahora hemos hablado mucho sobre cómo configurar Docker para WordPress, pero ¿por qué querrías hacer esto en primer lugar?

Uno de los mayores beneficios de Docker es que proporciona un entorno de desarrollo que se asemeja a un entorno de producción. Esto significa que puedes desarrollar y probar tu sitio WordPress en un entorno que es prácticamente idéntico al servidor en el que finalmente se alojará tu sitio. Esto reduce las posibilidades de encontrarte con sorpresas desagradables cuando traslades tu sitio a producción.

Además, Docker permite tener múltiples entornos de desarrollo independientes en tu máquina sin que interfieran entre sí. Esto es genial si trabajas en varios proyectos de WordPress al mismo tiempo.

Finalmente, Docker facilita la colaboración entre equipos. Puedes compartir tu docker-compose.yml con tu equipo y todos podrán configurar un entorno de desarrollo que sea idéntico, eliminando así los problemas del tipo «en mi máquina funciona».

Como ves, utilizar Docker para configurar un entorno de desarrollo local para WordPress tiene muchos beneficios. Espero que este artículo te haya sido de utilidad y te haya facilitado el proceso. ¡Ahora a disfrutar desarrollando en WordPress con Docker!

Deja una respuesta