#!/bin/sh # Entrypoint del worker: arregla permisos del volumen montado y ejecuta como www mkdir -p /var/www/html/logs /var/www/html/uploads chown -R www:www /var/www/html/logs /var/www/html/uploads chmod -R 775 /var/www/html/logs /var/www/html/uploads # Regenerar vendor/ si Coolify montó un volumen vacío sobre /var/www/html if [ ! -f /var/www/html/vendor/autoload.php ]; then echo "vendor/autoload.php no encontrado. Ejecutando composer install..." cd /var/www/html && composer install --no-dev --optimize-autoloader --no-interaction 2>&1 fi # Esperar a que MySQL esté disponible antes de arrancar el worker DB_HOST="${DB_HOST:-mysql}" DB_PORT="${DB_PORT:-3306}" RETRIES=30 echo "Esperando MySQL en ${DB_HOST}:${DB_PORT}..." while [ $RETRIES -gt 0 ]; do if nc -z "$DB_HOST" "$DB_PORT" 2>/dev/null; then echo "MySQL disponible." break fi RETRIES=$((RETRIES - 1)) echo "MySQL no disponible, esperando... ($RETRIES intentos restantes)" sleep 2 done if [ $RETRIES -eq 0 ]; then echo "ADVERTENCIA: MySQL no respondió después de 60s, arrancando worker de todas formas..." fi exec su-exec www "$@"