Files
whatsapp/docker/worker-entrypoint.sh
T

33 lines
1.1 KiB
Bash

#!/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 "$@"