Cómo instalar Drupal en Docker: Gestión de contenido empresarial con Drupal en Docker
Drupal: Gestión de contenido empresarial en Docker
CMS de código abierto potente y flexible usado por gobiernos, universidades y empresas de todo el mundo. Todo en Docker con MySQL o PostgreSQL.
¿Qué es Drupal?
Drupal es un sistema de gestión de contenido (CMS) de código abierto construido en PHP y distribuido bajo la licencia GNU General Public License. Se utiliza como framework backend para al menos el 2.1% de todos los sitios web en el mundo, desde blogs personales hasta sitios corporativos, políticos y gubernamentales como WhiteHouse.gov y data.gov.uk.
A diferencia de otros CMS, Drupal está diseñado para ser extremadamente flexible y extensible, permitiendo crear desde simples blogs hasta complejas aplicaciones web empresariales, portales de conocimiento y plataformas de colaboración empresarial.
Características principales
Gestión de contenido flexible
Tipos de contenido personalizables, taxonomía avanzada y relaciones complejas entre contenidos.
Arquitectura modular
Sistema de módulos y temas que extiende funcionalidades sin tocar el núcleo.
Multi-sitio
Gestiona múltiples sitios web desde una sola instalación de Drupal.
API robusta
RESTful Web Services integrado para crear aplicaciones headless o móviles.
Gestión de usuarios
Roles y permisos granulares con autenticación y autorización avanzada.
Multiidioma
Traducción integrada de contenido, interfaz y configuración sin módulos adicionales.
Responsive por defecto
Todos los temas core son responsive y mobile-first.
SEO avanzado
URLs limpias, meta tags, sitemaps y estructuración de datos integrados.
Seguridad empresarial
Equipo dedicado de seguridad con actualizaciones regulares y parches rápidos.
Workflows editoriales
Control de revisiones, moderación de contenido y flujos de aprobación.
Media management
Gestión avanzada de imágenes, vídeos y documentos con biblioteca de medios.
Community activa
Miles de módulos contrib y temas, documentación extensa y comunidad global.
Versiones disponibles
La imagen oficial de Drupal soporta múltiples versiones:
- Drupal 11: Última versión major (11.2, 11.3). PHP 8.3+, Symfony 7, mejoras en rendimiento y DX
- Drupal 10: Versión LTS actual (10.5, 10.6). PHP 8.1+, soporte hasta 2026
Instalación básica con Docker
Inicio rápido (SQLite)
La forma más rápida para probar Drupal sin base de datos externa:
Accede a http://localhost:8080 y durante la instalación selecciona SQLite como base de datos.
Instalación con Docker Compose (MySQL)
Paso 1: Crear docker-compose.yml
Paso 2: Inicializar el volumen sites
El directorio sites necesita inicializarse con el contenido de la imagen:
Paso 3: Iniciar los contenedores
Paso 4: Configurar Drupal
Abre http://localhost:8080 en tu navegador y sigue el instalador:
- Selecciona idioma
- Selecciona perfil de instalación (Standard recomendado)
- Configuración de base de datos:
- Tipo de base de datos: MySQL, MariaDB, Percona Server o equivalente
- Nombre de base de datos:
drupal - Usuario:
drupal - Contraseña:
drupal-password - OPCIONES AVANZADAS → Host:
mysql
- Configurar sitio (nombre, email administrador, contraseña)
Instalación con PostgreSQL
Para usar PostgreSQL en lugar de MySQL, reemplaza el servicio de base de datos:
Durante la instalación de Drupal:
- Tipo de base de datos: PostgreSQL
- Host (en OPCIONES AVANZADAS):
postgres
Gestión de volúmenes persistentes
Por defecto la imagen no incluye volúmenes. Los directorios que generalmente deberías hacer persistentes:
/var/www/html/modules- Módulos personalizados y contrib/var/www/html/profiles- Perfiles de instalación/var/www/html/themes- Temas personalizados y contrib/var/www/html/sites- Configuración del sitio, archivos subidos
Usando bind mounts (desarrollo)
Para desarrollo local con tu código en el host:
Instalar Drush (Drupal Shell)
Drush no viene en la imagen oficial. Para añadirlo, crea tu propio Dockerfile:
Construye y usa:
Añadir extensiones PHP
La imagen no incluye todas las extensiones PHP posibles. Para añadir extensiones adicionales:
Gestión y mantenimiento
Ver logs
Acceder al contenedor
Reiniciar Drupal
Detener todo
Actualizar a nueva versión
Backup y restore
Backup de base de datos
Backup de archivos
Restore de base de datos
Configurar reverse proxy (Nginx)
Casos de uso
- Sitios web corporativos: Portales empresariales con gestión de contenido compleja
- Portales gubernamentales: Sitios oficiales con altos requisitos de seguridad y accesibilidad
- Universidades: Portales educativos con múltiples sitios y contenido multiidioma
- Medios de comunicación: Portales de noticias con publicación editorial compleja
- Intranets corporativas: Gestión del conocimiento y colaboración interna
- E-commerce: Tiendas online con Drupal Commerce
- APIs headless: Backend para aplicaciones móviles y SPAs con Drupal como API
- Comunidades: Plataformas sociales y foros con gestión de usuarios avanzada
Comentarios
Publicar un comentario
Comenta...