FROM php:8.2-cli

# Instalar dependencias del sistema
RUN apt-get update && apt-get install -y \
    git \
    curl \
    libpng-dev \
    libonig-dev \
    libxml2-dev \
    zip \
    unzip \
    nodejs \
    npm

# Limpiar cache
RUN apt-get clean && rm -rf /var/lib/apt/lists/*

# Instalar extensiones PHP
RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd

# Obtener Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

# Establecer directorio de trabajo
WORKDIR /var/www

# Copiar todos los archivos de la aplicación
COPY . .

# Verificar que composer.json existe
RUN ls -la composer.json


# Instalar dependencias de Composer primero sin scripts
RUN composer install --no-dev --optimize-autoloader --no-scripts

# Verificar que vendor existe
RUN ls -la vendor/

# Ejecutar scripts de composer manualmente
RUN composer run-script post-autoload-dump || true

# Instalar dependencias de Node.js
RUN npm install

# Compilar assets
RUN npm run build

# Configurar permisos
RUN chown -R www-data:www-data /var/www
RUN chmod -R 755 /var/www/storage
RUN chmod -R 755 /var/www/bootstrap/cache

# Verificar estructura final
RUN ls -la /var/www/vendor/autoload.php

# Exponer puerto
EXPOSE 9000

CMD ["php", "artisan", "serve", "--host=0.0.0.0", "--port=9000"]