Cómo implementar WordPress como contenedor de Docker

Articulos tematica Microsoft

La ejecución de WordPress en Docker requiere dos contenedores separados: un contenedor web, que ejecuta Apache y PHP, y un contenedor de base de datos, que aloja MySQL.

También debe configurar los volúmenes de Docker para los directorios de datos de WordPress. Estos almacenan sus archivos de configuración y medios cargados para que persistan en los reinicios del contenedor.

Asegúrese de tener Docker y Docker Compose instalados antes de continuar. Aunque puede usar la CLI de Docker por sí sola, Compose facilita la definición de los dos servicios, sus dependencias y sus volúmenes. Podrás abrir toda la pila con un solo comando.

Imágenes base

La imagen oficial de WordPress Docker está disponible en muchos sabores etiquetados diferentes. Estos cubren el espectro de versiones disponibles de WordPress y PHP. Si usa la latestetiqueta , obtendrá la versión actual de WordPress con la versión más reciente de PHP.

Para tener más control sobre su implementación, use una versión específica de WordPress y PHP. Aquí están algunos ejemplos:

  • wordpress:5.7 - WordPress 5.7 con la última versión de PHP.
  • wordpress:php7.4 - PHP 7.4 con la última versión de WordPress.
  • wordpress:5.7-php7.4 - WordPress 5.7 con PHP 5.4.

Se ofrece una lista exhaustiva de etiquetas compatibles en Docker Hub . Además de la compatibilidad con la fijación de versiones, las variantes de imagen también están disponibles para Apache, FPM y Alpine.

Las imágenes vienen preconfiguradas con ajustes predeterminados utilizables. Puede agregar su propia php.iniconfiguración copiando un archivo compatible en el $PHP_INI_DIR/conf.ddirectorio dentro del contenedor de WordPress.

Implementar su pila

Cree un nuevo directorio para su sitio y luego agregue un docker-compose.ymlarchivo. Pegue el siguiente contenido:

versión : "3"

servicios :

wordpress :

imagen : wordpress: 5.7-php7.4

reiniciar : a menos que se detenga

puertos :

- 80

entorno :

WORDPRESS_DB_HOST : mysql

WORDPRESS_DB_USER : nombre de usuario

WORDPRESS_DB_PASSWORD : contraseña

WORDPRESS_DB_NAME :

volúmenes de wordpress :

- wordpress: / var / www / html

mysql :

imagen : mysql: 5.7

reiniciar : a menos que se detenga

entorno :

MYSQL_DATABASE : wordpress

MYSQL_USER : nombre de usuario

MYSQL_PASSWORD : contraseña

MYSQL_RANDOM_ROOT_PASSWORD : "1"

volúmenes :

- mysql: / var / lib / mysql

volúmenes :

wordpress :

mysql:

Este archivo Compose define una pila mínima con los servicios requeridos de WordPress y MySQL. La conexión a la base de datos se configura mediante variables de entorno. Debe cambiar el nombre de usuario y la contraseña de la base de datos para proteger sus propios valores. Recuerde aplicar los cambios a ambas definiciones de servicio.

Los servicios están configurados para reiniciarse automáticamente a menos que se hayan detenido manualmente. Esto asegura que su sitio vuelva a funcionar automáticamente cuando reinicie el sistema host.

Todo el directorio de instalación de WordPress está montado en un volumen. El uso de este enfoque garantiza que todo su contenido de WordPress se conserve fuera del contenedor, incluida la configuración, los temas, los complementos y las cargas.

También le permite usar el autoactualizador de WordPress desde el panel de administración. Si solo montó los directorios de datos en un volumen, cualquier cambio de origen aplicado por el autoactualizador se perderá después de reiniciar el contenedor.

Implemente la pila ejecutando docker-compose up -d. Podrá iniciar sesión en WordPress visitando http://localhosten su navegador. Si ve un mensaje de "error al establecer la conexión a la base de datos", espere unos momentos antes de volver a intentarlo. El aprovisionamiento de la base de datos de primera ejecución puede tardar varios segundos en completarse.

Haga clic en el asistente de configuración estándar de WordPress para configurar su sitio. Deberá configurar una cuenta de usuario de administrador inicial. Estas credenciales deben ser diferentes a las de su base de datos MySQL. El formulario de inicio de sesión de WordPress aparecerá cuando haya terminado. Utilice su nueva cuenta de administrador para iniciar sesión en el panel de administración.

Próximos pasos

Su instalación de WordPress ahora está lista para usar. Agregue publicaciones, páginas, temas y complementos utilizando la interfaz de administración, al igual que una instalación completa de WordPress.

Se recomienda que siga algunos pasos básicos de refuerzo de la seguridad para reducir el riesgo de ataque de su sitio. También debe asegurarse de tener una rutina de respaldo . Esto tendrá que cubrir la base de datos MySQL y el directorio de archivos de WordPress, wp-content.

Configuración con secretos de Docker

El uso de variables de entorno para la configuración es adecuado para uso local. Los secretos de Docker también son compatibles, lo que le brinda más seguridad en entornos a los que pueden acceder otros colaboradores. Definir secretos en sus variables de archivos y suplentes de redacción como WORDPRESS_DB_PASSWORDpara WORDPRESS_DB_PASSWORD_FILE. WordPress cargará el valor de la variable del archivo secreto que inyecta Docker.

servicios :

wordpress :

entorno :

WORDPRESS_DB_PASSWORD_FILE : / run / secrets / WORDPRESS_DB_PASSWORD

secretos :

- WORDPRESS_DB_PASSWORD

secretos :

WORDPRESS_DB_PASSWORD :

archivo : ./db_password

Agregue su contraseña al db_passwordarchivo en su directorio de trabajo. Será accesible como /run/secrets/WORDPRESS_DB_PASSWORDen el contenedor. Se indica a WordPress que lea este archivo para determinar la contraseña final de la base de datos.

Agregar su propio sitio

Los pasos anteriores dan como resultado una nueva instalación de WordPress que está lista para configurar de forma interactiva a través del centro de administración. Puede aprovisionar su contenedor con un conjunto de temas y complementos predeterminados montándolos en los directorios /var/www/html/wp-content/themesy /var/www/html/wp-content/plugins.

Esta técnica también le ayuda a crear una imagen de Docker personalizada para su sitio. Utilice la imagen oficial de WordPress como base y copie los activos de su sitio en los directorios apropiados. A continuación, se muestra un ejemplo de cómo podría empaquetar un tema personalizado como una imagen lista para usar:

FROM wordpress:5.7-php7.4-apache

COPY ./theme/ /var/www/html/wp-content/themes/example-theme/

Su tema estará disponible en cada contenedor que comience. Sin embargo, este método no habilita automáticamente el tema. Para eso, necesitará un tercer servicio utilizando la imagen CLI de WordPress.

servicios :

wpcli :

imagen : wordpress: cli-2-php7.4

entorno :

WORDPRESS_DB_HOST : mysql

WORDPRESS_DB_USER : nombre de usuario

WORDPRESS_DB_PASSWORD : contraseña

WORDPRESS_DB_NAME : wordpress

volúmenes_de :

- wordpress: rw

El contenedor CLI necesita acceso a las variables de entorno y los volúmenes disponibles para el contenedor web normal. Las variables de entorno deben duplicarse, a menos que las extraiga en una sección YAML reutilizable , mientras que los volúmenes se pueden montar usando volumes_from.

Ahora puede usar Docker Compose para completar la instalación de WordPress y habilitar su tema:

docker-compose run wpcli core install --title="My Site" --admin_user=admin --admin_password=changeme --admin_email=me@example.com --url=localhost --allow-root

docker-compose run wpcli theme activate example-theme --allow-root

Estos pasos se pueden automatizar como parte de su proceso de creación de imágenes o una canalización de CI. Puede enviar el contenedor final para crear una imagen independiente de su sitio, lista para su uso posterior.

Fecha actualización el 2021-07-28. Fecha publicación el 2021-07-28. Categoria: wordpress Autor: Oscar olg Mapa del sitio Fuente: cloudsavvyit