FROM php:8.2-fpm

# Argumentos para não interação durante a instalação
ARG DEBIAN_FRONTEND=noninteractive

# Instalar dependências do sistema e limpar cache APT
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        ca-certificates \
        bzip2 \
        curl \
        git \
        libonig-dev \
        libpng-dev \
        libxml2-dev \
        libzip-dev \
        unzip \
        zip && \
    update-ca-certificates && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# Instalar extensões PHP
RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd zip

# === Instalar e ativar a extensão Redis via PECL ===
RUN pecl install redis && docker-php-ext-enable redis

# Configurar limites de upload e post (opcional, mas útil)
RUN echo "upload_max_filesize=50M" > /usr/local/etc/php/conf.d/uploads.ini && \
    echo "post_max_size=50M" >> /usr/local/etc/php/conf.d/uploads.ini

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

# Definir diretório de trabalho e copiar os arquivos da aplicação
WORKDIR /var/www/html
COPY . /var/www/html

# Configurar permissões iniciais para o diretório da aplicação
# Isso garante que www-data seja o proprietário antes do composer install
RUN chown -R www-data:www-data /var/www/html

# Instalar dependências do Composer (apenas para produção)
RUN composer install --no-interaction --no-dev --optimize-autoloader

# Configurar permissões para os diretórios de cache e storage do Laravel
# ESSA É A MUDANÇA MAIS IMPORTANTE: Usar 755 para segurança.
RUN chown -R www-data:www-data /var/www/html/storage /var/www/html/bootstrap/cache && \
    chmod -R 755 /var/www/html/storage /var/www/html/bootstrap/cache

# Expor a porta padrão do PHP-FPM
EXPOSE 9000

# O comando padrão para iniciar o PHP-FPM
# Geralmente não é necessário um CMD explícito, a imagem base já o fornece.
# CMD ["php-fpm"]