FROM php:7.4-apache

# 1. Instalar dependencias del sistema y limpiar caché
# (Incluye el cliente de MySQL y librerías para Zip y OAuth)
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        zlib1g-dev \
        libzip-dev \
        git \
        curl \
        default-mysql-client \
        libpcre3-dev \
        && rm -rf /var/lib/apt/lists/*

# 2. Instalar extensiones de PHP (PDO MySQL, Zip y OAuth)
RUN docker-php-ext-install pdo pdo_mysql zip \
    && pecl install oauth \
    && docker-php-ext-enable oauth

# 3. Copiar configuración de PHP y habilitar mod_rewrite de Apache
COPY docker-php.conf /etc/apache2/conf-enabled/docker-php.conf
RUN a2enmod rewrite

# 4. Instalar Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# ==================================================
# FIXES PARA GIT Y COMPOSER
# ==================================================

# Soluciona el error "dubious ownership" de Git
RUN git config --global --add safe.directory '*'

# Evita que Composer bloquee la instalación por vulnerabilidades en dependencias antiguas
RUN composer config --global audit.block-insecure false

# ==================================================

# 5. Establecer el directorio de trabajo respetando tu ruta
WORKDIR /var/www/html/centralapps

# 6. Copiar TODOS los archivos locales del proyecto a la subcarpeta
COPY . /var/www/html/centralapps/

# 7. Copiar llaves y scripts de instalación
# (Creamos el directorio /btw/app por seguridad antes de copiar la llave)
RUN mkdir -p /btw/app
COPY google-cloud-key.json /btw/app/google-cloud-key.json
COPY composer.sh /tmp/

# 8. Ajustar permisos de Apache y ejecutar tu script de Composer
RUN chown -R www-data:www-data /var/www/html \
    && chmod -R 775 /var/www/html/centralapps/storage \
    && chmod -R 775 /var/www/html/centralapps/bootstrap/cache

RUN sh /tmp/composer.sh

# 9. Exponer el puerto 80
EXPOSE 80
