Skip to content

Commit b518d78

Browse files
authored
Merge pull request #16 from bmiguelbc16/fix/mysql-timeout-instalacion
fix: MySQL connection timeout in automatic WordPress installation
2 parents 3b3399e + 7d82398 commit b518d78

File tree

7 files changed

+268
-55
lines changed

7 files changed

+268
-55
lines changed

.dockerignore

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# =============================================================================
2+
# Docker Build Context Optimization
3+
# Excluye archivos innecesarios para mejorar el rendimiento del build
4+
# =============================================================================
5+
6+
# Control de versiones
7+
.git/
8+
.gitignore
9+
.gitattributes
10+
.gitmodules
11+
12+
# Archivos de desarrollo y configuración
13+
.env*
14+
.vscode/
15+
.idea/
16+
.claude/
17+
*.log
18+
19+
# Dependencias y builds
20+
node_modules/
21+
bower_components/
22+
vendor/
23+
composer.lock
24+
package-lock.json
25+
26+
# Archivos temporales y cache
27+
storage/cache/
28+
storage/logs/
29+
tmp/
30+
*.tmp
31+
*.swp
32+
*.swo
33+
*~
34+
35+
# Archivos de backup y tests
36+
*.backup
37+
test/
38+
wp-test/
39+
db_data/
40+
wordpress/
41+
42+
# Archivos comprimidos y releases
43+
*.zip
44+
*.tar.gz
45+
*.rar
46+
antonella-framework-for-wp.zip
47+
48+
# Archivos del sistema
49+
.DS_Store
50+
Thumbs.db
51+
52+
# Documentación de desarrollo (mantener solo esenciales)
53+
PROBLEMAS_DE_INSTALACION.md
54+
55+
# CLI tools
56+
wp-cli.phar
57+
antonella
58+
antonella2

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@
1515
*.PDF diff=astextplain
1616
*.rtf diff=astextplain
1717
*.RTF diff=astextplain
18+
*.sh text eol=lf

docker-compose.yaml

Lines changed: 47 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,24 @@
1+
# =============================================================================
2+
# Antonella Framework for WordPress - Docker Compose Configuration
3+
#
4+
# Entorno de desarrollo completo con:
5+
# - MySQL 8.0 con healthchecks
6+
# - WordPress con framework preconfigurado
7+
# - phpMyAdmin para gestión de BD
8+
# - WP-CLI para automatización
9+
#
10+
# Requisitos:
11+
# - Docker Desktop 4.53.0+ (compatibilidad ARM64/Windows)
12+
# - Docker Compose v2+
13+
#
14+
# Uso: docker compose up -d
15+
# =============================================================================
16+
117
services:
2-
# Base de datos MySQL
18+
# =============================================================================
19+
# Base de datos MySQL 8.0
20+
# Configurada con healthchecks para dependencias seguras
21+
# =============================================================================
322
mysql:
423
container_name: mysql-antonella
524
image: mysql:8.0
@@ -15,11 +34,16 @@ services:
1534
- mysql_data:/var/lib/mysql
1635
command: --default-authentication-plugin=mysql_native_password
1736
healthcheck:
18-
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
19-
timeout: 20s
20-
retries: 10
37+
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "wordpress", "-pwordpress"]
38+
interval: 5s
39+
timeout: 10s
40+
retries: 20
41+
start_period: 30s
2142

22-
# phpMyAdmin para gestión de base de datos
43+
# =============================================================================
44+
# phpMyAdmin - Gestión visual de base de datos
45+
# Acceso: http://localhost:9000 (cambiar puerto si está ocupado)
46+
# =============================================================================
2347
phpmyadmin:
2448
image: phpmyadmin/phpmyadmin:latest
2549
container_name: phpmyadmin-antonella
@@ -35,7 +59,12 @@ services:
3559
ports:
3660
- "9000:80"
3761

38-
# WordPress con configuración automática
62+
# =============================================================================
63+
# WordPress con Antonella Framework
64+
# Configuración automática de desarrollo con inicialización completa
65+
# Acceso: http://localhost:8080
66+
# Admin: http://localhost:8080/wp-admin (test/test)
67+
# =============================================================================
3968
wordpress:
4069
build:
4170
context: .
@@ -96,7 +125,10 @@ services:
96125
// Configuración de papelera
97126
define('EMPTY_TRASH_DAYS', 7);
98127
99-
# Servicio para ejecutar WP-CLI commands
128+
# =============================================================================
129+
# WP-CLI Container - Automatización y comandos WordPress
130+
# Uso: docker compose exec wpcli wp <comando>
131+
# =============================================================================
100132
wpcli:
101133
build:
102134
context: .
@@ -115,14 +147,22 @@ services:
115147
WORDPRESS_DB_NAME: wordpress
116148
command: tail -f /dev/null # Mantener el contenedor activo
117149

150+
# =============================================================================
118151
# Volúmenes persistentes
152+
# Mantienen datos entre reinicios de contenedores
153+
# =============================================================================
119154
volumes:
120155
mysql_data:
121156
driver: local
157+
# Datos de MySQL (base de datos, configuraciones)
122158
wordpress_data:
123159
driver: local
160+
# Instalación completa de WordPress (core, themes, uploads)
124161

162+
# =============================================================================
125163
# Red personalizada
164+
# Permite comunicación entre servicios con nombres de host
165+
# =============================================================================
126166
networks:
127167
default:
128168
name: antonella-network

docker/Dockerfile.wordpress

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,35 @@
1+
# =============================================================================
2+
# Antonella Framework - WordPress Development Container
3+
#
4+
# Builds a WordPress environment with:
5+
# - WP-CLI for automation
6+
# - Custom initialization scripts
7+
# - Development tools and dependencies
8+
#
9+
# Compatible with: linux/amd64, linux/arm64, windows
10+
# =============================================================================
11+
112
FROM wordpress:latest
213

3-
# Instalar dependencias necesarias
14+
# =============================================================================
15+
# Install system dependencies and development tools
16+
# =============================================================================
417
RUN apt-get update && apt-get install -y \
518
curl \
619
less \
720
default-mysql-client \
821
&& rm -rf /var/lib/apt/lists/*
922

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

15-
# Crear directorio para scripts
30+
# =============================================================================
31+
# Setup custom scripts directory and initialization
32+
# =============================================================================
1633
RUN mkdir -p /docker-scripts
1734

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

43+
# =============================================================================
44+
# Configure container startup
45+
# =============================================================================
46+
2647
ENTRYPOINT ["/docker-scripts/entrypoint.sh"]
2748
CMD ["apache2-foreground"]

docker/entrypoint.sh

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
11
#!/bin/bash
22
set -e
33

4+
echo "🚀 Iniciando contenedor de WordPress..."
5+
46
# Ejecutar el entrypoint original de WordPress
57
docker-entrypoint.sh "$@" &
68

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

10-
# Esperar un poco para que WordPress se inicie
11-
sleep 10
12+
echo "⏳ Esperando a que WordPress se inicie..."
13+
# Esperar más tiempo para que WordPress se inicie completamente
14+
sleep 30
1215

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

1620
# Esperar a que WordPress termine
1721
wait $WORDPRESS_PID

0 commit comments

Comments
 (0)