Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# =============================================================================
# Docker Build Context Optimization
# Excluye archivos innecesarios para mejorar el rendimiento del build
# =============================================================================

# Control de versiones
.git/
.gitignore
.gitattributes
.gitmodules

# Archivos de desarrollo y configuración
.env*
.vscode/
.idea/
.claude/
*.log

# Dependencias y builds
node_modules/
bower_components/
vendor/
composer.lock
package-lock.json

# Archivos temporales y cache
storage/cache/
storage/logs/
tmp/
*.tmp
*.swp
*.swo
*~

# Archivos de backup y tests
*.backup
test/
wp-test/
db_data/
wordpress/

# Archivos comprimidos y releases
*.zip
*.tar.gz
*.rar
antonella-framework-for-wp.zip

# Archivos del sistema
.DS_Store
Thumbs.db

# Documentación de desarrollo (mantener solo esenciales)
PROBLEMAS_DE_INSTALACION.md

# CLI tools
wp-cli.phar
antonella
antonella2
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
*.sh text eol=lf
54 changes: 47 additions & 7 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
# =============================================================================
# Antonella Framework for WordPress - Docker Compose Configuration
#
# Entorno de desarrollo completo con:
# - MySQL 8.0 con healthchecks
# - WordPress con framework preconfigurado
# - phpMyAdmin para gestión de BD
# - WP-CLI para automatización
#
# Requisitos:
# - Docker Desktop 4.53.0+ (compatibilidad ARM64/Windows)
# - Docker Compose v2+
#
# Uso: docker compose up -d
# =============================================================================

services:
# Base de datos MySQL
# =============================================================================
# Base de datos MySQL 8.0
# Configurada con healthchecks para dependencias seguras
# =============================================================================
mysql:
container_name: mysql-antonella
image: mysql:8.0
Expand All @@ -15,11 +34,16 @@ services:
- mysql_data:/var/lib/mysql
command: --default-authentication-plugin=mysql_native_password
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
timeout: 20s
retries: 10
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "wordpress", "-pwordpress"]
interval: 5s
timeout: 10s
retries: 20
start_period: 30s

# phpMyAdmin para gestión de base de datos
# =============================================================================
# phpMyAdmin - Gestión visual de base de datos
# Acceso: http://localhost:9000 (cambiar puerto si está ocupado)
# =============================================================================
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
container_name: phpmyadmin-antonella
Expand All @@ -35,7 +59,12 @@ services:
ports:
- "9000:80"

# WordPress con configuración automática
# =============================================================================
# WordPress con Antonella Framework
# Configuración automática de desarrollo con inicialización completa
# Acceso: http://localhost:8080
# Admin: http://localhost:8080/wp-admin (test/test)
# =============================================================================
wordpress:
build:
context: .
Expand Down Expand Up @@ -96,7 +125,10 @@ services:
// Configuración de papelera
define('EMPTY_TRASH_DAYS', 7);

# Servicio para ejecutar WP-CLI commands
# =============================================================================
# WP-CLI Container - Automatización y comandos WordPress
# Uso: docker compose exec wpcli wp <comando>
# =============================================================================
wpcli:
build:
context: .
Expand All @@ -115,14 +147,22 @@ services:
WORDPRESS_DB_NAME: wordpress
command: tail -f /dev/null # Mantener el contenedor activo

# =============================================================================
# Volúmenes persistentes
# Mantienen datos entre reinicios de contenedores
# =============================================================================
volumes:
mysql_data:
driver: local
# Datos de MySQL (base de datos, configuraciones)
wordpress_data:
driver: local
# Instalación completa de WordPress (core, themes, uploads)

# =============================================================================
# Red personalizada
# Permite comunicación entre servicios con nombres de host
# =============================================================================
networks:
default:
name: antonella-network
27 changes: 24 additions & 3 deletions docker/Dockerfile.wordpress
Original file line number Diff line number Diff line change
@@ -1,18 +1,35 @@
# =============================================================================
# Antonella Framework - WordPress Development Container
#
# Builds a WordPress environment with:
# - WP-CLI for automation
# - Custom initialization scripts
# - Development tools and dependencies
#
# Compatible with: linux/amd64, linux/arm64, windows
# =============================================================================

FROM wordpress:latest

# Instalar dependencias necesarias
# =============================================================================
# Install system dependencies and development tools
# =============================================================================
RUN apt-get update && apt-get install -y \
curl \
less \
default-mysql-client \
&& rm -rf /var/lib/apt/lists/*

# Instalar WP-CLI
# =============================================================================
# Install WP-CLI for WordPress automation
# =============================================================================
RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \
&& chmod +x wp-cli.phar \
&& mv wp-cli.phar /usr/local/bin/wp

# Crear directorio para scripts
# =============================================================================
# Setup custom scripts directory and initialization
# =============================================================================
RUN mkdir -p /docker-scripts

# Copiar script de inicialización
Expand All @@ -23,5 +40,9 @@ RUN chmod +x /docker-scripts/init-wordpress.sh
COPY docker/entrypoint.sh /docker-scripts/
RUN chmod +x /docker-scripts/entrypoint.sh

# =============================================================================
# Configure container startup
# =============================================================================

ENTRYPOINT ["/docker-scripts/entrypoint.sh"]
CMD ["apache2-foreground"]
12 changes: 8 additions & 4 deletions docker/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
#!/bin/bash
set -e

echo "🚀 Iniciando contenedor de WordPress..."

# Ejecutar el entrypoint original de WordPress
docker-entrypoint.sh "$@" &

# Obtener el PID del proceso de WordPress
WORDPRESS_PID=$!

# Esperar un poco para que WordPress se inicie
sleep 10
echo "⏳ Esperando a que WordPress se inicie..."
# Esperar más tiempo para que WordPress se inicie completamente
sleep 30

# Ejecutar la inicialización en segundo plano
/docker-scripts/init-wordpress.sh &
echo "🔧 Ejecutando script de inicialización de WordPress..."
# Ejecutar la inicialización en segundo plano con logging
/docker-scripts/init-wordpress.sh 2>&1 | tee /tmp/init-wordpress.log &

# Esperar a que WordPress termine
wait $WORDPRESS_PID
Loading