FROM php:8.2-fpm

# Install system dependencies
RUN apt-get update && apt-get install -y \
    zlib1g-dev \
    libpng-dev \
    libjpeg-dev \
    libfreetype6-dev \
    libzip-dev \
    libxml2-dev \
    libonig-dev \
    libpq-dev \
    libicu-dev \
    unzip \
    git \
    curl \
    wget \
    libxrender1 \
    libxext6 \
    fontconfig \
    xfonts-base \
    xfonts-75dpi \
    && rm -rf /var/lib/apt/lists/*

# wkhtmltopdf: usar el binario del proyecto si existe, si no descargarlo
RUN if [ -f /var/www/bin/wkhtmltopdf ]; then \
        ln -sf /var/www/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf; \
    else \
        wget -q https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb -O /tmp/wkhtmltox.deb \
        && apt-get install -y /tmp/wkhtmltox.deb \
        && rm /tmp/wkhtmltox.deb; \
    fi

# Configure and install PHP extensions
RUN docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install -j$(nproc) \
        gd \
        pdo_mysql \
        zip \
        mbstring \
        intl \
        opcache

# Install Redis extension
RUN pecl install redis && docker-php-ext-enable redis

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

# Set working directory
WORKDIR /var/www

# Copy application files
COPY . /var/www

# Install application dependencies
RUN composer install --no-interaction --optimize-autoloader

# Set permissions
RUN chown -R www-data:www-data /var/www \
    && chmod -R 755 /var/www/storage \
    && [ -f /var/www/bin/wkhtmltopdf ] && chmod +x /var/www/bin/wkhtmltopdf || true

EXPOSE 9000
CMD ["php-fpm"]
