33 lines
1.1 KiB
Bash
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 "$@"
|