Hola y bienvenidos a DevCodeLight, hoy vamos a aprender cómo podemos desplegar un WordPress usando un Docker Compose que os voy a compartir a todos.

Lo primero que vamos a hacer es crear este archivo docker-compose.yml
version: "3.1"
services:
miservicio_mariadb_wp:
image: mariadb
restart: unless-stopped
container_name: mariadb_container_wp
environment:
MYSQL_ROOT_PASSWORD: ${SQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${SQL_DATABASE}
volumes:
- ./config/mariadb:/var/lib/mysql
expose:
- 3306
ports:
- 3306:3306
phpmyadmin_wp:
image: phpmyadmin
restart: unless-stopped
container_name: phpmyadmin_container_wp
ports:
- 8080:80
environment:
- PMA_ARBITRARY=1
links:
- miservicio_mariadb_wp:db
wordpress:
image: wordpress
restart: always
container_name: wordpress
ports:
- 8000:80
environment:
WORDPRESS_DB_HOST: miservicio_mariadb_wp
WORDPRESS_DB_USER: ${SQL_USER}
WORDPRESS_DB_PASSWORD: ${SQL_ROOT_PASSWORD}
WORDPRESS_DB_NAME: ${SQL_DATABASE}
volumes:
- ./www:/var/www/html
- ./logs:/var/log/apache2
Este Docker Compose tiene una imagen de MariaDB que usaremos para alojar nuestro .sql de WordPress.
Tiene un PHP MyAdmin que usaremos para acceder al entorno de MariaDB de nuestro WordPress por si lo necesitamos y además guardará dentro de config/mariadb la base de datos.
Y tiene una imagen oficial de WordPress que guardará en una carpeta www los archivos WordPress y en logs los logs de apache2.
Ahora creamos el .env con la configuración de las variables del Docker Compose.
SQL_USER=root SQL_ROOT_PASSWORD=123456 SQL_DATABASE=wordpress
Puse este de ejemplo, sustituye por variables más seguras.
Recomiendo además crear este .gitignore si usamos git.
.env config logs
La estructura final es la siguiente:

Y bien, ahora podemos arrancar nuestro docker compose usando este comando:
docker compose up -d

Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.