diff --git a/Dockerfile b/Dockerfile index 57e3f9e..0e10d32 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,58 +1,46 @@ -# Dockerfile para aplicação PHP - Deploy no Coolify +# Imagem base com PHP 8.1 e Apache FROM php:8.1-apache -# Definir variáveis de ambiente -ENV APACHE_DOCUMENT_ROOT=/var/www/html \ - PHP_TIMEZONE=America/Sao_Paulo +# Configura o timezone +ENV TZ=America/Sao_Paulo -# Instalar dependências do sistema e extensões PHP necessárias +# Habilita o mod_rewrite do Apache +RUN a2enmod rewrite + +# Instala dependências e extensões PHP necessárias RUN apt-get update && apt-get install -y \ - libpng-dev \ - libjpeg-dev \ - libfreetype6-dev \ + libicu-dev \ libzip-dev \ + libjpeg-dev \ + libpng-dev \ + libfreetype6-dev \ unzip \ + git \ + zip \ && docker-php-ext-configure gd --with-freetype --with-jpeg \ - && docker-php-ext-install -j$(nproc) \ - pdo_mysql \ - mbstring \ - gd \ - zip \ - opcache \ + && docker-php-ext-install intl zip pdo pdo_mysql gd \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* -# Habilitar mod_rewrite e ajustar diretórios do Apache -RUN a2enmod rewrite \ - && sed -ri -e "s!/var/www/html!${APACHE_DOCUMENT_ROOT}!g" /etc/apache2/sites-available/*.conf \ - && sed -ri -e "s!/var/www/!${APACHE_DOCUMENT_ROOT}!g" /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf +# Define diretório de trabalho padrão +WORKDIR /var/www/html -# Copiar e descompactar app.zip no diretório raiz do Apache -COPY app.zip /tmp/app.zip -RUN unzip -q /tmp/app.zip -d ${APACHE_DOCUMENT_ROOT}/ \ - && rm /tmp/app.zip \ - && chown -R www-data:www-data ${APACHE_DOCUMENT_ROOT} \ - && chmod -R 755 ${APACHE_DOCUMENT_ROOT} +# Define ordem dos arquivos index +RUN echo "DirectoryIndex login.php index.php" > /etc/apache2/conf-available/directoryindex.conf \ + && a2enconf directoryindex -# Configurar PHP.ini com otimizações de produção -RUN echo "[PHP] \n\ -memory_limit = 256M \n\ -upload_max_filesize = 50M \n\ -post_max_size = 50M \n\ -max_execution_time = 300 \n\ -max_input_time = 300 \n\ -date.timezone = ${PHP_TIMEZONE} \n\ -\n\ -[opcache] \n\ -opcache.enable = 1 \n\ -opcache.memory_consumption = 128 \n\ -opcache.interned_strings_buffer = 8 \n\ -opcache.max_accelerated_files = 10000 \n\ -opcache.revalidate_freq = 2 \n\ -opcache.fast_shutdown = 1" > /usr/local/etc/php/conf.d/custom.ini +# Copia e descompacta os arquivos da aplicação +COPY app.zip /var/www/html/ +RUN unzip -o app.zip -d /var/www/html && rm app.zip -# Expor porta padrão HTTP +# Substitui o diretório /files por um link simbólico (volume externo opcional) +# RUN rm -rf /var/www/html/files && ln -s /files /var/www/html/files + +# Permissões para o Apache +RUN chown -R www-data:www-data /var/www/html + +# Porta HTTP padrão EXPOSE 80 -# Comando padrão para iniciar o Apache +# Inicia o Apache no foreground CMD ["apache2-foreground"]