# ==================================================
# DOCKERFILE SCRIPTCASE 9.12 - VERSÃO DEMONSTRAÇÃO - Produção
# ==================================================

# Imagem base: PHP 8.1 + Apache (homologado pelo Scriptcase)
FROM php:8.1-apache

# Instalar ferramentas básicas (download, extração, requisições)
RUN apt-get update && apt-get install -y \
    wget unzip curl \
    # Bibliotecas para extensão GD (manipulação de imagens)
    libfreetype6-dev libjpeg62-turbo-dev libpng-dev \
    # Biblioteca para manipulação de arquivos ZIP
    libzip-dev \
    # Bibliotecas para processamento XML/XSLT
    libxml2-dev libxslt1-dev \
    # Biblioteca para autenticação LDAP
    libldap2-dev \
    # Biblioteca para requisições HTTP
    libcurl4-openssl-dev \
    # Biblioteca para strings multibyte (UTF-8)
    libonig-dev \
    # Bibliotecas para bancos de dados PostgreSQL e SQLite
    libpq-dev libsqlite3-dev \
    # Limpar cache para reduzir tamanho da imagem
    && rm -rf /var/lib/apt/lists/*

# Configurar extensões que precisam de parâmetros especiais
RUN docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/

# Instalar extensões PHP obrigatórias para Scriptcase (grupo 1)
RUN docker-php-ext-install gd zip mbstring xml soap xsl bcmath ldap

# Instalar extensões PHP para bancos de dados (grupo 2)
RUN docker-php-ext-install pdo pdo_mysql pdo_sqlite mysqli

# Configurar limites PHP otimizados para Scriptcase
RUN echo 'max_execution_time = 3600' > /usr/local/etc/php/conf.d/scriptcase.ini \
    # Memória para processamento de dados volumosos
    && echo 'memory_limit = 1024M' >> /usr/local/etc/php/conf.d/scriptcase.ini \
    # Upload de arquivos grandes (planilhas, imagens)
    && echo 'upload_max_filesize = 200M' >> /usr/local/etc/php/conf.d/scriptcase.ini \
    # POST de formulários com muito conteúdo
    && echo 'post_max_size = 200M' >> /usr/local/etc/php/conf.d/scriptcase.ini


# Habilitar mod_rewrite do Apache (URLs amigáveis)
RUN a2enmod rewrite

# Criar diretório para Scriptcase com permissões corretas
RUN mkdir -p /var/www/html/producao \
    && chown -R www-data:www-data /var/www/html

# Documentar que container usa porta 80
EXPOSE 80