From 710b241c646e222681f624520f4e601c03dacf6c Mon Sep 17 00:00:00 2001 From: wander Date: Mon, 25 May 2026 19:02:17 -0300 Subject: [PATCH] Enviar arquivos para "/" --- Dockerfile | 68 ++++++++++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 31 +++++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..57b8966 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,68 @@ +# ================================================== +# DOCKERFILE SCRIPTCASE 9.12 - VERSÃO DEMONSTRAÇÃ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 + +# Instalar SourceGuardian (obrigatório para Scriptcase funcionar) +RUN cd /tmp \ + # Simular navegador para evitar bloqueio do site + && 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 \ + # Copiar loader para diretório de extensões PHP 8.1 + && cp ixed.8.1.lin /usr/local/lib/php/extensions/no-debug-non-zts-20210902/ \ + # 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 \ + # Limpar arquivos temporários + && rm -rf /tmp/* + +# 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/scriptcase \ + && chown -R www-data:www-data /var/www/html + +# Documentar que container usa porta 80 +EXPOSE 80 \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..10974c4 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,31 @@ +# ===================================================== +# DOCKER COMPOSE SCRIPTCASE - VERSÃO DEMONSTRAÇÃO +# ===================================================== + +services: + scriptcase: + # Construir imagem a partir do Dockerfile local + build: . + + # Mapear porta 8093 externa para porta 80 interna do container + # Acesso: http://servidor:8093 + ports: + - "8093:80" + + # Volume persistente para dados do Scriptcase + # ./scriptcase-data (host) ↔ /var/www/html/scriptcase (container) + volumes: + - ./scriptcase-data:/var/www/html/scriptcase + + # Reiniciar automaticamente se container falhar + # (exceto se parado manualmente) + restart: unless-stopped + + # Nome fixo do host para estabilizar licenciamento + # Scriptcase verifica hostname para validar licença + hostname: scriptcase-demo + + # Variáveis de ambiente do container + environment: + # Configurar timezone para América/São Paulo + - TZ=America/Sao_Paulo \ No newline at end of file