This commit is contained in:
2026-06-15 15:48:40 -03:00
parent 2128890d4a
commit 43589a597d

View File

@@ -1,68 +1,64 @@
# ================================================== # ==================================================
# DOCKERFILE SCRIPTCASE 9.12 - VERSÃO DEMONSTRAÇÃO # DOCKERFILE SCRIPTCASE 9.12 - VERSÃO DEMONSTRAÇÃO
# ================================================== # ==================================================
# Imagem base: PHP 8.1 + Apache (homologado pelo Scriptcase) # Imagem base: PHP 8.1 + Apache
FROM php:8.1-apache FROM php:8.1-apache
# Instalar ferramentas básicas (download, extração, requisições) # Instalar ferramentas básicas e bibliotecas necessárias
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
wget unzip curl \ wget unzip curl \
# Bibliotecas para extensão GD (manipulação de imagens) libfreetype6-dev libjpeg62-turbo-dev libpng-dev \
libfreetype6-dev libjpeg62-turbo-dev libpng-dev \ libzip-dev \
# Biblioteca para manipulação de arquivos ZIP libxml2-dev libxslt1-dev \
libzip-dev \ libldap2-dev \
# Bibliotecas para processamento XML/XSLT libcurl4-openssl-dev \
libxml2-dev libxslt1-dev \ libonig-dev \
# Biblioteca para autenticação LDAP libpq-dev libsqlite3-dev \
libldap2-dev \ && rm -rf /var/lib/apt/lists/*
# Biblioteca para requisições HTTP
libcurl4-openssl-dev \ # Configurar extensões que precisam de parâmetros especiais
# Biblioteca para strings multibyte (UTF-8) RUN docker-php-ext-configure gd --with-freetype --with-jpeg \
libonig-dev \ && docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/
# Bibliotecas para bancos de dados PostgreSQL e SQLite
libpq-dev libsqlite3-dev \ # Instalar extensões PHP obrigatórias para Scriptcase
# Limpar cache para reduzir tamanho da imagem RUN docker-php-ext-install gd zip mbstring xml soap xsl bcmath ldap
&& rm -rf /var/lib/apt/lists/*
# Instalar extensões PHP para bancos de dados
# Configurar extensões que precisam de parâmetros especiais RUN docker-php-ext-install \
RUN docker-php-ext-configure gd --with-freetype --with-jpeg \ pdo \
&& docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ pdo_mysql \
pdo_pgsql \
# Instalar extensões PHP obrigatórias para Scriptcase (grupo 1) pgsql \
RUN docker-php-ext-install gd zip mbstring xml soap xsl bcmath ldap pdo_sqlite \
mysqli
# Instalar extensões PHP para bancos de dados (grupo 2)
RUN docker-php-ext-install pdo pdo_mysql pdo_sqlite mysqli pdo_pgsql pgsql # Criar diretório de sessão PHP com permissão para Apache
RUN mkdir -p /var/lib/php/sessions \
# Configurar limites PHP otimizados para Scriptcase && chown -R www-data:www-data /var/lib/php/sessions \
RUN echo 'max_execution_time = 3600' > /usr/local/etc/php/conf.d/scriptcase.ini \ && chmod 1733 /var/lib/php/sessions
# Memória para processamento de dados volumosos
&& echo 'memory_limit = 1024M' >> /usr/local/etc/php/conf.d/scriptcase.ini \ # Configurar limites PHP otimizados para Scriptcase
# Upload de arquivos grandes (planilhas, imagens) RUN echo 'max_execution_time = 3600' > /usr/local/etc/php/conf.d/scriptcase.ini \
&& echo 'upload_max_filesize = 200M' >> /usr/local/etc/php/conf.d/scriptcase.ini \ && echo 'memory_limit = 1024M' >> /usr/local/etc/php/conf.d/scriptcase.ini \
# POST de formulários com muito conteúdo && echo 'upload_max_filesize = 200M' >> /usr/local/etc/php/conf.d/scriptcase.ini \
&& echo 'post_max_size = 200M' >> /usr/local/etc/php/conf.d/scriptcase.ini && echo 'post_max_size = 200M' >> /usr/local/etc/php/conf.d/scriptcase.ini \
&& echo 'session.save_path = "/var/lib/php/sessions"' >> /usr/local/etc/php/conf.d/scriptcase.ini
# Instalar SourceGuardian (obrigatório para Scriptcase funcionar)
RUN cd /tmp \ # Instalar SourceGuardian
# Simular navegador para evitar bloqueio do site RUN cd /tmp \
&& wget --user-agent="Mozilla/5.0" https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz \ && wget --user-agent="Mozilla/5.0" https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz \
# Extrair arquivos do SourceGuardian && tar -xzf loaders.linux-x86_64.tar.gz \
&& tar -xzf loaders.linux-x86_64.tar.gz \ && cp ixed.8.1.lin /usr/local/lib/php/extensions/no-debug-non-zts-20210902/ \
# Copiar loader para diretório de extensões PHP 8.1 && echo "zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20210902/ixed.8.1.lin" > /usr/local/etc/php/conf.d/sourceguardian.ini \
&& cp ixed.8.1.lin /usr/local/lib/php/extensions/no-debug-non-zts-20210902/ \ && rm -rf /tmp/*
# Configurar como extensão Zend (não extensão comum)
&& echo "zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20210902/ixed.8.1.lin" > /usr/local/etc/php/conf.d/sourceguardian.ini \ # Habilitar mod_rewrite do Apache
# Limpar arquivos temporários RUN a2enmod rewrite
&& rm -rf /tmp/*
# Criar diretório para Scriptcase com permissões corretas
# Habilitar mod_rewrite do Apache (URLs amigáveis) RUN mkdir -p /var/www/html/scriptcase \
RUN a2enmod rewrite && chown -R www-data:www-data /var/www/html
# Criar diretório para Scriptcase com permissões corretas # Porta padrão do Apache
RUN mkdir -p /var/www/html/scriptcase \
&& chown -R www-data:www-data /var/www/html
# Documentar que container usa porta 80
EXPOSE 80 EXPOSE 80