FROM php:7.4-apache

# 1. Configuración PRO para imágenes EOL (Debian Bullseye)
# Apuntamos a los repositorios de archivo para evitar errores 404 en el futuro
# y deshabilitamos la validación de fecha de expiración para repositorios archivados.
RUN echo "deb http://archive.debian.org/debian/ bullseye main" > /etc/apt/sources.list \
    && echo 'Acquire::Check-Valid-Until "false";' > /etc/apt/apt.conf.d/99no-check-valid-until \
    && apt-get update \
    && apt-get install -y --no-install-recommends \
        zlib1g-dev \
        libzip-dev \
        git \
        curl \
        default-mysql-client \
        libpcre3-dev \
    && apt-get clean \
    && 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
COPY docker-php.conf /etc/apache2/conf-enabled/docker-php.conf
RUN a2enmod rewrite

# 4. Instalar Composer (Multi-stage pattern simplificado)
COPY --from=composer:latest /usr/bin/composer /usr/local/bin/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
WORKDIR /var/www/html/centralapps

# 6. Copiar código fuente
COPY . /var/www/html/centralapps/

# 7. Copiar credenciales y scripts
RUN mkdir -p /btw/app
COPY google-cloud-key.json /btw/app/google-cloud-key.json
COPY composer.sh /tmp/

# 8. Permisos de Apache y ejecución del script
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 \
    && sh /tmp/composer.sh

# 9. Exponer el puerto
EXPOSE 80
