# Imagen base con PHP 8.5 y FPM
FROM php:8.5-fpm

# Instalar dependencias del sistema y extensiones de PHP
# netcat-openbsd es necesario para verificar conexiÃ³n a BD en entrypoint
RUN apt-get update && apt-get install -y \
    git unzip libpq-dev libzip-dev zip curl gnupg default-mysql-client netcat-openbsd \
    libpng-dev libjpeg-dev libfreetype6-dev \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install pdo pdo_mysql pdo_pgsql zip gd \
    && rm -rf /var/lib/apt/lists/*

# Install Node.js 24.x LTS
RUN curl -fsSL https://deb.nodesource.com/setup_24.x | bash - \
    && apt-get update && apt-get install -y nodejs \
    && npm -v && node -v

# Instalar Composer
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer

# Configurar directorio de trabajo
WORKDIR /var/www/html

# Copiar solo los archivos de Composer para aprovechar la cachÃ©
COPY composer.json composer.lock ./
# Prefer install for caching; if constraints changed and lock is outdated,
# fall back to update to satisfy new constraints during build.
RUN composer install --no-interaction --no-scripts --optimize-autoloader \
 || composer update --no-interaction --no-scripts --optimize-autoloader

# Install JS deps and build assets
COPY package.json package-lock.json webpack.config.js ./
COPY tailwind.config.js postcss.config.js ./
COPY assets ./assets
COPY templates ./templates
# Asegurar que se construyan los assets de producciÃ³n
RUN (npm ci --ignore-scripts || npm install --ignore-scripts) \
    && npm run build

# Ahora sÃ­ copiar todo el proyecto (incluye bin/console)
COPY . ./

# Asegurar permisos correctos
RUN mkdir -p /var/www/html/var/cache /var/www/html/var/log /var/www/html/public/uploads/adjuntos \
    && chown -R www-data:www-data /var/www/html/var /var/www/html/public/uploads

CMD ["php-fpm"]

