# Imagen base con PHP 8.2 y Apache (Bookworm = más actual y segura)
FROM php:8.2-apache-bookworm

# Variables de entorno recomendadas para producción
ENV APACHE_DOCUMENT_ROOT=/var/www/html/public \
    COMPOSER_ALLOW_SUPERUSER=1 \
    PHP_OPCACHE_VALIDATE_TIMESTAMPS=0 \
    PHP_OPCACHE_MAX_ACCELERATED_FILES=10000 \
    PHP_OPCACHE_MEMORY_CONSUMPTION=192 \
    PHP_OPCACHE_INTERNED_STRINGS_BUFFER=16

# Instalar dependencias necesarias y limpiar cache
#RUN apt-get update && apt-get install -y --no-install-recommends \
#    libzip-dev zip unzip curl \
#    libpng-dev libjpeg62-turbo-dev libfreetype6-dev \
#    libonig-dev libxml2-dev mariadb-client \
#    libldap2-dev libicu-dev g++ \
# && docker-php-ext-configure gd --with-freetype --with-jpeg \
# && docker-php-ext-install -j$(nproc) pdo pdo_mysql zip opcache ldap intl gd \
# && a2enmod rewrite headers ssl proxy proxy_http \
# && rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -y --no-install-recommends \
    libzip-dev zip unzip curl \
    libpng-dev libjpeg62-turbo-dev libfreetype6-dev \
    libonig-dev libxml2-dev mariadb-client \
    libldap2-dev libicu-dev g++ \
 && docker-php-ext-configure gd --with-freetype --with-jpeg \
 && docker-php-ext-install -j$(nproc) pdo pdo_mysql zip opcache ldap intl gd \
 && a2enmod rewrite headers ssl proxy proxy_http proxy_connect proxy_balancer \
 && rm -rf /var/lib/apt/lists/*

# Usamos la siguientes extensiones para sftp
RUN apt-get update && apt-get install -y openssh-client

# Copiar configuración personalizada de Apache (tu vhost.conf)
# La ponemos en sites-available con su propio nombre
COPY docker/vhost.conf /etc/apache2/sites-available/vhost.conf

# Habilitar tu VirtualHost y deshabilitar el default
RUN a2dissite 000-default.conf \
 && a2ensite vhost.conf

# Copiar código de Laravel, para producción con pocos cambios
#WORKDIR /var/www/html
#COPY . /var/www/html

# Ajustar permisos Laravel (storage + cache), 
# pero estamos manejando desde afuera para prueba prod
#RUN chown -R www-data:www-data /var/www/html \
#    && chmod -R 775 /var/www/html/storage /var/www/html/bootstrap/cache


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

# Configuraciones personalizadas de PHP para subida de archivos
RUN { \
        echo "upload_max_filesize = 200M"; \
        echo "post_max_size = 210M"; \
        echo "max_execution_time = 300"; \
        echo "max_input_time = 300"; \
    } > /usr/local/etc/php/conf.d/uploads.ini


# Exponer los puertos HTTP y HTTPS
EXPOSE 80 443

# Comando de arranque (Apache en foreground)
CMD ["apache2-foreground"]

