# Usar PHP 8.4 FPM como imagen base
FROM php:8.4-fpm

# Establecer el directorio de trabajo
WORKDIR /var/www/html

# Instalar dependencias del sistema y extensiones de PHP
RUN apt-get update && apt-get install -y \
    libpng-dev \
    libjpeg62-turbo-dev \
    libfreetype6-dev \
    libzip-dev \
    unzip \
    curl \
    libbz2-dev \
    libcurl4-openssl-dev \
    libxml2-dev \
    git \
    libonig-dev \
    libxslt-dev \
    libicu-dev \
    libmcrypt-dev \
    sqlite3 \
    libsqlite3-dev \
    libreadline-dev \
    libedit-dev

RUN docker-php-ext-configure gd \
    && docker-php-ext-install gd

# Instalar extensiones en comandos separados para caché
RUN docker-php-ext-install bz2
RUN docker-php-ext-install calendar
RUN docker-php-ext-install ctype
RUN docker-php-ext-install curl
RUN docker-php-ext-install dom
RUN docker-php-ext-install exif
RUN docker-php-ext-install fileinfo
RUN docker-php-ext-install filter
RUN docker-php-ext-install ftp
RUN docker-php-ext-install gettext
RUN docker-php-ext-install iconv
RUN docker-php-ext-install intl
RUN docker-php-ext-install mbstring
RUN docker-php-ext-install mysqli
RUN docker-php-ext-install pcntl
RUN docker-php-ext-install pdo
RUN docker-php-ext-install pdo_mysql
RUN docker-php-ext-install pdo_sqlite
RUN docker-php-ext-install posix
#RUN docker-php-ext-install readline
RUN docker-php-ext-install session
RUN docker-php-ext-install shmop
RUN docker-php-ext-install simplexml
RUN docker-php-ext-install soap
RUN docker-php-ext-install sockets
RUN docker-php-ext-install sysvmsg
RUN docker-php-ext-install sysvsem
RUN docker-php-ext-install sysvshm
RUN docker-php-ext-install xml
RUN docker-php-ext-install xmlreader
RUN docker-php-ext-install xmlwriter
RUN docker-php-ext-install xsl
RUN docker-php-ext-install zip

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

# Copiar código fuente de la aplicación
COPY . /var/www/html

# Ajustar permisos para PHP-FPM
RUN chown -R www-data:www-data /var/www/html \
    && chmod -R 755 /var/www/html

# Instalar dependencias de PHP con Composer si `composer.json` está en la raíz
RUN if [ -f "/var/www/html/composer.json" ]; then composer install --no-dev --optimize-autoloader; fi

# Exponer el puerto de PHP-FPM
EXPOSE 9000

# Comando de inicio
CMD ["php-fpm"]
