Uso de contenedores Docker con WordPress

Publicado: 2022-06-30

Ejecutar sitios web de WordPress puede implicar el uso de una gran cantidad de configuraciones y dependencias de software para producir productos de alta calidad. Es posible que se haya preguntado si existe una manera más fácil de desarrollar este tipo de proyectos localmente sin ejecutar tantos paquetes de software diferentes en su propia máquina.

Afortunadamente, Docker es un producto que ofrece una solución para una configuración de WordPress más rápida y fluida. Más que una simple máquina virtual, Docker proporciona contenedores para desarrollar sitios web de WordPress además de otras aplicaciones y software. Docker también puede ayudarlo a preparar fácilmente las aplicaciones para enviarlas a otras plataformas, lo que agiliza su flujo de trabajo.

En este artículo, veremos qué son exactamente los contenedores y cómo afectan el desarrollo. Luego veremos cómo configurar un contenedor para el desarrollo local de WordPress y prepararlo para la producción. ¡Empecemos!

Tabla de contenido
1. ¿Qué son los contenedores?
2. Primeros pasos con Docker
3. Usar un Contenedor para WordPress (Con Docker)
3.1. Paso 1: Instalar Componer
3.2. Paso 2: Definir el Proyecto
3.3. Paso 3: Cree un archivo Docker para YAML
3.4. Paso 4: construir el proyecto
3.5. Paso 5: acceda a su instalación de WordPress
4. ¿Puedo enviar una imagen de WordPress al servidor de producción?
5. Cree algo grandioso con WP Engine

¿Qué son los contenedores?

Instalar WordPress no es un paseo por el parque, y puede ser abrumador desarrollar un sitio web de WordPress. En términos de desarrollo web, los contenedores son unidades estandarizadas de software que empaquetan su código y todas sus dependencias, por lo que implementar WordPress se vuelve mucho más fácil. Múltiples contenedores también hacen posible hacer esto de manera confiable de un entorno a otro.

Si bien Docker es un tipo de virtualización, es diferente de las máquinas virtuales (VM) normales. Mientras que las máquinas virtuales ocupan un espacio precioso, al agregar el sistema operativo host al espacio de usuario para cada aplicación, el desarrollo en contenedores comparte eso en todos los contenedores.

La verdadera belleza de Docker es que se ejecutará de la misma manera sin importar en qué tipo de sistema operativo se encuentre. Además, puede ejecutar muchos contenedores Docker en una máquina que, de lo contrario, tendría problemas con la misma cantidad de máquinas virtuales. Tampoco tiene que preocuparse por ninguno de los errores que a veces puede provocar el desarrollo local. Esto también se conoce como el enigma 'pero funciona en mi máquina' en el desarrollo de aplicaciones.

Primeros pasos con Docker

Docker tiene muchos productos diferentes, que se combinan para crear un poderoso conjunto de herramientas para desarrolladores. Puede comenzar con Docker Engine descargando la versión de la comunidad de forma gratuita:

Deberá crear una cuenta de Docker para descargar el motor. Entonces querrá familiarizarse con la documentación de "inicio" de Docker. Tendrá ocho versiones diferentes de Docker para elegir. Para este ejemplo, vamos a descargar Docker Desktop para Mac:

Deberá iniciar sesión en su cuenta de Docker para descargar el motor. Además, querrá asegurarse de tener una aplicación de terminal en su computadora lista para usar.

Uso de un contenedor para WordPress (con Docker)

Para usar contenedores Docker para desarrollar un sitio web de WordPress localmente, también usará otra aplicación Docker. Cubriremos cómo instalar Compose en un momento, pero es importante saber que esta herramienta se usa para definir y ejecutar aplicaciones de contenedores múltiples en Docker. Entonces, ¡estás listo para saltar de inmediato!

Paso 1: Instalar Componer

Antes de lanzarse a la acción con Docker, querrá asegurarse de haber instalado Compose. Si está ejecutando Docker Desktop para Mac o Windows, Compose viene preinstalado:

Si está trabajando en Linux, deberá usar Terminal para ejecutar los comandos de instalación. Solo tenga en cuenta que Compose depende del Docker Engine. Deberá tener ambos instalados para participar en cualquier desarrollo de WordPress.

Compose usa un archivo YAML Ain't Markup Language (YAML) para configurar todos los servicios de su aplicación. Esta es una forma sencilla de presentar la serialización de datos y funciona con todos los lenguajes de programación. En este caso, el archivo YAML configurará la información de base de datos necesaria para WordPress.

Paso 2: Definir el Proyecto

Una vez que instale Docker Engine y Compose instalado, puede comenzar con su primer proyecto de desarrollo de WordPress. Deberá crear un nuevo directorio de proyecto vacío usando el comando 'hacer directorio':

mkdir new_wordpress/

El directorio que configure será el contexto para su desarrollo y contendrá solo los elementos necesarios, incluido su archivo docker-compose.yaml. Crearemos ese archivo en el siguiente paso.

A continuación, puede pasar a su nuevo directorio usando el siguiente comando:

cd new_wordpress/

Ahora estará en el directorio de su nuevo proyecto y estará listo para comenzar a trabajar.

Paso 3: Cree un archivo Docker para YAML

Ahora, deberá crear un nuevo archivo docker-compose.yaml. Esto creará su nueva instalación de WordPress y la base de datos MySQL necesaria. Su archivo contendrá toda la información tanto para WordPress como para su base de datos, incluidos los puertos, bases de datos, nombres de host y contraseñas necesarios.

Su archivo YAML se verá así:

version: '3.3'

services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
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
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}

Vale la pena señalar que los volúmenes de Docker contienen datos persistentes, y es posible que desee consultar la documentación sobre volúmenes para ponerse al día.

Paso 4: construir el proyecto

Ahora que ha configurado el archivo YAML, deberá ejecutar el comando que extraerá todas las imágenes requeridas y configurará su proyecto de WordPress. Desde el directorio de su proyecto, ejecutará el siguiente comando:

docker-compose up -d

Ahora debería ver que Docker está 'tirando' de las imágenes de MySQL y WordPress.

Vale la pena señalar que las páginas de imágenes de Docker Hub contienen mucha información valiosa sobre los contenedores de MySQL y WordPress:

Considérelos su guía de referencia todo en uno con comandos útiles para la imagen del contenedor. Vale la pena marcarlos para su uso posterior.

Paso 5: acceda a su instalación de WordPress

Debido a que está instalando este sitio localmente, deberá usar el puerto indicado en su archivo YAML en lugar del típico script de WordPress /install.php . Como estamos usando Docker Desktop para Mac en nuestro ejemplo, usaremos https://localhost como la dirección IP y abriremos el puerto https://localhost:8000 . Este fue el puerto designado en su archivo YAML.

Es probable que ahora esté en un territorio familiar si ha instalado WordPress antes, y puede completar el proceso de 'instalación famosa de cinco minutos':

Es posible que deba darle a Docker unos minutos para cargar e inicializar completamente las imágenes, pero luego puede acceder a WordPress en un navegador para completar los pasos de instalación estándar.

Se recomienda que también 'apague y limpie' una vez que haya completado la instalación. Para hacer esto, puede usar el comando 'abajo' de Docker. Esto detendrá y eliminará los contenedores, pero conservará la base de datos de WordPress. Hay bastantes cosas que debe entender acerca de pausar, matar y detener contenedores si usa Docker, por lo que vale la pena leer más sobre el tema.

¿Puedo enviar una imagen de WordPress al servidor de producción?

Es importante tener en cuenta aquí que los sitios alojados en los servidores de WP Engine no tienen el acceso raíz necesario para configurar una nueva imagen acoplable. Sin embargo, si su sitio está en un servidor de producción, puede seguir los pasos a continuación para enviar su imagen.

Ahora que ha creado una imagen de WordPress localmente, es posible que se pregunte cómo puede usar la misma imagen en un servidor de producción. Algunos de los pasos que acaba de completar serán los mismos, pero primero deberá crear un repositorio privado en Docker Hub.

Para llevar su contenedor Docker de WordPress a producción, deberá usar su cuenta Docker y enviar la imagen a un repositorio privado. A partir de ahí, puede seguir los mismos pasos que repasamos anteriormente, pero extraerá la imagen de su repositorio directamente a su servidor de producción cambiando la información del puerto en su archivo YAML.

Existe una opción gratuita para usar repositorios privados, pero solo puede crear uno. Afortunadamente, Docker tiene muchos niveles de precios para adaptarse a las necesidades de cualquier desarrollador:

En última instancia, si está buscando mejorar su flujo de trabajo de desarrollo o simplemente se está iniciando en esta área, Docker es una excelente herramienta para tener en su kit de recursos. También proporciona mucha documentación útil y soporte.

Construya algo grandioso con WP Engine

Ahora que se ha orientado a Docker, es posible que esté ansioso por participar y comenzar a desarrollar algunas aplicaciones nuevas para configurar un sitio de WordPress. Tenga en cuenta que uno de los mayores beneficios de Docker es que sabrá que sus aplicaciones no se encontrarán con errores extravagantes específicos de la máquina.

Aquí en WP Engine, nos encanta compartir los mejores recursos para desarrolladores para que pueda crear experiencias digitales increíbles para sus clientes. Ya sea que esté en la fase de desarrollo, puesta en escena o producción de su proyecto, ¡tenemos planes de hospedaje y soluciones digitales innovadoras para usted!

¿Quiere conocer otras formas de instalar rápidamente aplicaciones de WordPress? ¿O tal vez otras formas de configurar un sitio de WordPress? Háganos saber sus pensamientos en la sección de comentarios.