diff --git a/Dockerfile b/Dockerfile index d2c1eed..57e3f9e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,61 +1,58 @@ -# Dockerfile para aplicação PHP - Deploy no Coolify -FROM php:8.1-apache - -# Definir variáveis de ambiente -ENV APACHE_DOCUMENT_ROOT=/var/www/html -ENV PHP_TIMEZONE=America/Sao_Paulo - -# Instalar dependências do sistema e extensões PHP necessárias -RUN apt-get update && apt-get install -y \ - libpng-dev \ - libjpeg-dev \ - libfreetype6-dev \ - libzip-dev \ - unzip \ - && docker-php-ext-configure gd --with-freetype --with-jpeg \ - && docker-php-ext-install -j$(nproc) \ - pdo_mysql \ - mbstring \ - gd \ - zip \ - opcache \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* - -# Configurar Apache para suportar .htaccess -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 - -# Copiar e descompactar app.zip -COPY app.zip /tmp/app.zip -RUN unzip -q /tmp/app.zip -d /var/www/html/ \ - && rm /tmp/app.zip \ - && chown -R www-data:www-data /var/www/html \ - && chmod -R 755 /var/www/html - -# Configurar PHP.ini com otimizações de produção -RUN { \ - echo '[PHP]'; \ - echo 'memory_limit = 256M'; \ - echo 'upload_max_filesize = 50M'; \ - echo 'post_max_size = 50M'; \ - echo 'max_execution_time = 300'; \ - echo 'max_input_time = 300'; \ - echo 'date.timezone = ${PHP_TIMEZONE}'; \ - echo ''; \ - echo '[opcache]'; \ - echo 'opcache.enable = 1'; \ - echo 'opcache.memory_consumption = 128'; \ - echo 'opcache.interned_strings_buffer = 8'; \ - echo 'opcache.max_accelerated_files = 10000'; \ - echo 'opcache.revalidate_freq = 2'; \ - echo 'opcache.fast_shutdown = 1'; \ -} > /usr/local/etc/php/conf.d/custom.ini - -# Expor porta 80 -EXPOSE 80 - -# Comando padrão do Apache -CMD ["apache2-foreground"] - +# Dockerfile para aplicação PHP - Deploy no Coolify +FROM php:8.1-apache + +# Definir variáveis de ambiente +ENV APACHE_DOCUMENT_ROOT=/var/www/html \ + PHP_TIMEZONE=America/Sao_Paulo + +# Instalar dependências do sistema e extensões PHP necessárias +RUN apt-get update && apt-get install -y \ + libpng-dev \ + libjpeg-dev \ + libfreetype6-dev \ + libzip-dev \ + unzip \ + && docker-php-ext-configure gd --with-freetype --with-jpeg \ + && docker-php-ext-install -j$(nproc) \ + pdo_mysql \ + mbstring \ + gd \ + zip \ + opcache \ + && 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 + +# 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} + +# 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 + +# Expor porta padrão HTTP +EXPOSE 80 + +# Comando padrão para iniciar o Apache +CMD ["apache2-foreground"]