Desarrollo local de WordPress con Docker

¡Feliz año nuevo! Espero que te hayan gustado las vacaciones (suponiendo que no tuvieras que trabajar) y ahora has vuelto, ansioso por aprender. Estoy seguro y regresé con un tutorial fantástico para ti: cómo usar Docker para el desarrollo de WordPress. De hecho, lo anuncié hace unos días a través de Twitter (en catalán):
Le recomendamos que escriba una entrada sobre el desarrollo en WordPress usando Docker … – David Aguilera (@Davilera) 17 de diciembre de 2018
Permítame comenzar con una historia corta: comencé mi viaje como desarrollador de WordPress usando LAMP (Linux + Apache + MySQL + PHP). Desafortunadamente, rápidamente me di cuenta de que cuando estaba trabajando en varios proyectos al mismo tiempo, la configuración era un desastre, porque todos usaban el mismo servidor, la misma base de datos … luego me mudé al Vagrant (VVV a Special), Un entorno diseñado para el desarrollo de WordPress, pero fue un dolor en la parte inferior: mi computadora de 6 años tenía muchos problemas ejecutando varios cuadros virtuales y todo fue extremadamente lento. Luego traté de ir al Local By Flywheel, porque Antonio parecía disfrutar mucho del entorno … ¡pero nunca vino a Linux! ¿No había una opción rápida, confiable y fácil de usar para mí?
Finalmente, decidí que tenía que obtener más información sobre Docker y ver si esta herramienta había oído hablar de mis necesidades. Si desea obtener más información sobre Docker y desea usarlo en sus desarrollos de WordPress, no se pierda esta guía: descubra cómo construir entornos de desarrollo rápidos y eficientes. Docher Docker es un programa informático que realiza la virtualización a nivel del sistema operativo, también conocido como “Contenedorización”. Tiene dos ventajas principales en comparación con la configuración clásica de la lámpara: los contenedores se aislan entre sí, y la comunicación entre ellas es limitada, lo que aumenta la seguridad
Herramientas, bibliotecas, archivos de configuración y todo lo que necesita para ejecutar el contenedor está en el contenedor en sí, lo que significa que tendremos una configuración limpia y ordenada; una vez que terminemos con el contenedor, podemos eliminarlo y todo desaparecerá.
En mi opinión, la principal ventaja que Docker ha comparado con otro software de virtualización es el entorno de virtualización que utiliza de forma predeterminada: RUNC. Este entorno ejecuta todos los contenedores en el sistema operativo host (en lugar de ejecutar una máquina virtual completa), lo que hace que las cosas sean mucho más rápidas y más fáciles. Esto significa que el host (nuestra PC) y los invitados (el contenedor) dividirán muchos recursos y todo funcionará como un encanto en una computadora “antigua”.
Instalación de Docker para instalar Docker en Linux (Debian/Ubuntu), simplemente ejecute el siguiente pedido:
Siga las instrucciones en la pantalla y espere hasta que se complete APT. Una vez que Docker está instalado, podemos usarlo con el comando Docker. El único problema de Docker es que tendrá que ejecutarlo con privilegios de administrador usando sudo. Pero podemos resolver eso. Si prefiere ejecutar Docker sin sudo (y así evitar ingresar a su contraseña a menudo), agregue el usuario al grupo Docker: donde su usuario es obviamente su nombre de usuario en Linux. Por cierto, es posible que deba desconectar y reconectarse para aplicar este cambio.
Cómo instalar Docker en Mac o Windows Si usa Mac o Windows, puede instalar Docker. Solo tiene que seguir las instrucciones en el sitio web de Docker:
Instalación de Windows
Instalación de Mac
Cómo usar Docker, entonces, ahora que tenemos un Docker configurado y listo para usar, es hora de intentarlo. Como dije, Docker es una herramienta para administrar las aplicaciones contenidas. Si queremos lanzar un contenedor, debemos ejecutar el siguiente pedido:
Por ejemplo, prueba este comando:
Para lanzar el clásico Hello World en un contenedor Docker. Si todo funcionó de acuerdo con las expectativas, primero verá algo como esto en su terminal:
Esto nos da información interesante. Primero, Docker buscó una foto llamada Hello-World, pero no la encontró. En segundo lugar, buscó esa imagen en un almacén de imágenes en línea y esta vez tuvo éxito y logró descargarla. Y esta es una de las mejores cosas de Docker: tiene un almacenamiento de imágenes con múltiples aplicaciones que podemos usar como contenedores Docker (similar a lo que tenemos en WordPress, complementos y directores de temas). Ahora, de vuelta a nuestra terminal, podemos ver el resultado real del Hello World Container: ¡y eso es todo! ¿Ya ha ejecutado su primer contenedor Docker?
Si ahora escribe el siguiente comando:
Verá el contenedor Docker creado usando la imagen de Hello-World:
Para eliminarlo, solo escriba:
Asegúrese de ingresar el contenedor de identificación apropiado. Y esto es prácticamente todo lo que existe en Docker … así que pasemos a otro (Docker Compose) y aprendamos a usarlo como desarrolladores de WordPress. Docker Compose Como puede imaginar, en el almacén de imágenes de Docker hay una imagen de WordPress disponible. Puede pensar que solo tenemos que dibujar esa imagen y podríamos comenzar un nuevo sitio de WordPress, pero no es cierto:
Por un lado, esta imagen no incluye el sistema de base de datos. Entonces, si queremos comenzar nuestro sitio de WordPress, tendremos que instalar MySQL en algún lugar (o usar un contenedor MySQL).
Por otro lado, la imagen de WordPress requiere parámetros de configuración (como, por ejemplo, donde es la base de datos y las credenciales para acceder a ella). Entonces, cada vez que ejecutamos la corte, debemos especificar esos argumentos.
El uso del orden Docker solo puede ser complicado, especialmente cuando tenemos que comenzar más contenedores a la vez y dependen de los demás (como lo hace WordPress). Afortunadamente, hay una herramienta llamada Docker-Compose que usa un archivo de configuración para describir todos los contenedores que necesitamos, las adicciones que tienen entre sí y su configuración específica. Comencemos creando un nuevo director en el que vivirá la configuración de Docker Compose expediente. Por ejemplo, cree ~/docker/pruebe y agregue un archivo llamado Docker-Compose.yml con el siguiente contenido:
Sé que este archivo puede parecer complicado, pero no lo es. Mire cuidadosamente: el archivo simplemente define los dos servicios (o contenedores, si lo desea) necesitamos ejecutar WordPress: MySQL y WordPress. El primero (MySQL) contiene información sobre la imagen que necesitamos (que obviamente es una imagen MySQL, versión 5.7) y algunos parámetros de configuración. Los más relevantes son probablemente el mapa del puerto (podremos acceder a la base de datos utilizando el puerto 8081 en nuestro host, que se asigna a 3306 en el invitado) y la configuración de la base de datos en sí (usuario, contraseña, etc.) .
Este último es el propio WordPress (WordPress) y sigue un enfoque similar. Aquí le decimos a Docker Compose que queremos que WordPress sea accesible a través del puerto 8080 de nuestro host. También mencionamos que WordPress se basa en el otro servicio: MySQL. Y finalmente agregue algunos parámetros de configuración adicionales (esencialmente, para acceder a la base de datos). Después de haber terminado, guarde y salga el archivo y escriba el siguiente pedido:
Y Docker descargará imágenes de WordPress y MySQL e iniciará WordPress. Espere solo unos minutos y, una vez que termine, vaya a http: // localhost: 8080 con su navegador web (observe cómo el puerto que usamos aquí coincide con el especificado en el archivo de configuración) y verá su nuevo sitio de WordPress: Instalación de WordPress en un contenedor Docker. A partir de este momento, si queremos crear nuevas canchas de WordPress, simplemente repetirá los pasos que hemos discutido. Es decir, creará un nuevo directorio en ~/ Docker/, agregará el archivo Docker-compose.yml y lo configurará. Solo asegúrese de usar diferentes puertos para esta nueva instancia o no podrá ejecutarlos en ambos al mismo tiempo (por ejemplo, use 8082 para WordPress y 8083 para MySQL). Una vez que haya terminado, puede detener el contenedor ejecutando el siguiente comando:
Solo asegúrese de usar Stop en lugar de Down:
Como Down no solo detendrá el contenedor, sino que lo eliminará por completo. Es decir, si reinicia un contenedor usando Docker-Compose Up después de cerrarlo usando el comando hacia abajo, WordPress comenzará desde cero (una base de datos vacía, una WordPress desinstalada, etc.). Desarrollo Docker y WordPress Genial! Tiene casi todo lo que necesita para desarrollar complementos y temas de WordPress usando Docker de manera efectiva. Espero que mis explicaciones hasta ahora hayan sido útiles y que ahora entiendas mejor qué es Docker y cómo funciona. En mi opinión, solo faltan dos cosas para ser 100% efectivas con esta configuración:

Cómo agregar el complemento o el tema al contenedor Docker.
Cómo usar nombres de dominio como http: //content.local en lugar de http: // localhost: puerto con docker.

Agregando el proyecto a un contenedor Docker cada vez que tengo que trabajar en un arado o un nuevo tema, creo un nuevo contenedor Docker. Si sigue la guía hasta ahora, probablemente se dio cuenta de que la instalación de WordPress creada por Docker está completamente vacía y no contiene ninguno de nuestros complementos o temas. Entonces, suponiendo que trabajo en un nuevo complemento, ¿cómo agrego ese complemento a la carpeta WP-Content/ Plugins/ que está en el contenedor? Hay varias opciones para exponer los directores de contenedores y hacerlos disponibles en nuestro automóvil anfitrión. El que me gusta más del director de nuestro proyecto (y solo ese director) a un director de WordPress. Veamos esto con un ejemplo concreto. Supongamos que trabajo en mi complemento con mi computadora portátil. Este complemento se encuentra actualmente en ~/dev/no content/. Obviamente, quiero que este complemento se incluya en mi entorno de desarrollo, para que pueda probarlo y ver que todos los cambios que aplico a funcionar como se esperaba. Lo primero que haré es agregar un archivo Docker-Compose.yml a mi complemento. El contenido del archivo mencionado será una copia exacta de lo que ya hemos visto pero con una opción adicional:
Esencialmente, simplemente hemos agregado una nueva directiva llamada volúmenes y especificamos el mapa que queremos. Es decir, queremos que el director actual (a saber, el director de nuestro complemento, identificado con un punto). Maded to/lime/www/html/wp-account/plugins/inheSy (quien es director en el contenedor de WordPress). Fácil, ¿verdad? Después de todo, la sintaxis que usamos es la misma que usamos para mapear el puerto, pero ahora la aplicamos a los directores. ¡Y eso es! Si iniciamos nuestro contenedor ahora, veremos que nuestro complemento está disponible en la pantalla de la placa de complementos. El uso de nombres de dominio personal no me gusta acceder a las instalaciones de desarrollo utilizando localhost y un puerto. Creo que el uso de nombres de dominio como http: //content.local es mucho más fácil. Entonces, ¿cómo podemos lograr eso? Bueno, necesitamos algunas cosas … En primer lugar, tenemos que decirle a nuestra computadora que un cierto nombre de dominio (por ejemplo, content.local) es la computadora en sí. Esto es tan fácil como editar /etc /hosts y moler este nuevo nombre de dominio a IP Localhost: ¡Genial! En este momento, http: //content.local es exactamente equivalente a http: // localhost. Pero esto no es exactamente lo que queremos … lo que queremos es http: //content.local en http: // localhost: 8080. Para hacer esto, necesitamos un servidor proxy que asigne la primera dirección al final. Esto también es muy fácil de lograr. Simplemente cree una nueva carpeta llamada ~/docker/proxy con el siguiente archivo Docker-compose.yml:
Luego ejecute Docker Network Create Proxy e inicie el nuevo contenedor usando Docker -Compose Up -D. Esto creará una red que todos nuestros proyectos de WordPress utilizarán (más sobre ella en un minuto) e instalará el proxy que hará toda la magia. Finalmente, simplemente necesitamos cambiar nuestro contenedor de WordPress, para que automáticamente señale el proxy sobre su existencia: bueno, así que hicimos algunas cosas aquí. Echemos un vistazo más de cerca a todos los cambios que hemos aplicado:
En la sección de WordPress de entorno, hemos agregado dos nuevos atributos: virtual_host y virtual_port. Estos son los atributos que nuestro proxy usará para mapear virtual_host en localhost: virtual_port.
Debido a que queremos que nuestro servicio de WordPress hable con nuestro poder, debemos asegurarnos de que ambos contenedores estén en la misma red. Esto es bastante fácil: simplemente agregamos una opción de redes en WordPress e incluimos la red frontend (puede usar cualquier palabra clave). Luego, al final del archivo, agregué algunas reglas más. En particular, agregué una sección de redes y especifiqué que hay una red externa identificada por la palabra clave frontend por el proxy de nombre. Observe que esta red externa es la misma que utilicé en Docker-Compose.yml of Proxy.
Finalmente, quiero asegurarme de que WordPress y MySQL puedan hablar entre ellos, por lo que tengo que asegurarme de que estén en una red común. Para hacer esto, agregué ambos a otra red llamada backend, que es interna y, por lo tanto, nadie más puede acceder a ellos.

Copyright statement: Unless otherwise noted, this article is Collected from the Internet, please keep the source of the article when reprinting.

Check Also

gkOVSBm5B8SgiXmo

Shopify vs WooCommerce – ¿Cuál es la mejor plataforma?(Comparación)

Shopify vs WooCommerce

Leave a Reply

Your email address will not be published. Required fields are marked *