From be00a09326c7955d6926cd4f7a6e81fbb670f9d0 Mon Sep 17 00:00:00 2001 From: Taller FCyT Date: Fri, 26 Sep 2025 15:47:09 +0000 Subject: [PATCH] dockerfile mas rapido --- Dockerfile | 91 ++++++++++++++++++++---------------------------------- 1 file changed, 34 insertions(+), 57 deletions(-) mode change 100644 => 100755 Dockerfile diff --git a/Dockerfile b/Dockerfile old mode 100644 new mode 100755 index 46b1834..dbef36f --- a/Dockerfile +++ b/Dockerfile @@ -1,78 +1,55 @@ FROM php:7.4-apache -# Instalar dependencias del sistema -RUN apt-get update && apt-get install -y \ - libpq-dev \ - libicu-dev \ - libzip-dev \ - libonig-dev \ - libfreetype6-dev \ - libjpeg62-turbo-dev \ - libpng-dev \ - git \ - unzip \ - && rm -rf /var/lib/apt/lists/* +RUN apt-get update && apt-get install -y --no-install-recommends \ + $PHPIZE_DEPS \ + libpq-dev libicu-dev libzip-dev zlib1g-dev libonig-dev \ + libfreetype6-dev libjpeg62-turbo-dev libpng-dev \ + libcurl4-openssl-dev \ + git unzip curl ca-certificates \ + && rm -rf /var/lib/apt/lists/* -# Instalar extensiones PHP requeridas RUN docker-php-ext-configure gd --with-freetype --with-jpeg \ - && docker-php-ext-install -j$(nproc) \ - pdo_pgsql \ - mbstring \ - curl \ - openssl \ - apcu \ - gd \ - intl \ - zip + && docker-php-ext-install -j"$(nproc)" \ + pdo_pgsql mbstring curl gd intl zip -# Configurar PHP -RUN echo "max_input_vars = 2000" >> /usr/local/etc/php/conf.d/custom.ini \ - && echo "allow_url_fopen = On" >> /usr/local/etc/php/conf.d/custom.ini \ - && echo "memory_limit = 512M" >> /usr/local/etc/php/conf.d/custom.ini \ - && echo "upload_max_filesize = 50M" >> /usr/local/etc/php/conf.d/custom.ini \ - && echo "post_max_size = 50M" >> /usr/local/etc/php/conf.d/custom.ini +RUN pecl install apcu \ + && docker-php-ext-enable apcu \ + && apt-get purge -y --auto-remove $PHPIZE_DEPS || true -# Instalar Composer -COPY --from=composer:latest /usr/bin/composer /usr/bin/composer +RUN { \ + echo "max_input_vars = 2000"; \ + echo "allow_url_fopen = On"; \ + echo "memory_limit = 512M"; \ + echo "upload_max_filesize = 50M"; \ + echo "post_max_size = 50M"; \ + } > /usr/local/etc/php/conf.d/custom.ini -# Instalar yui-compressor -RUN curl -L -o yuicompressor-2.4.8.jar https://github.com/yui/yuicompressor/releases/download/v2.4.8/yuicompressor-2.4.8.jar \ - && mv yuicompressor-2.4.8.jar /usr/local/bin/yuicompressor.jar +COPY --from=composer:2 /usr/bin/composer /usr/bin/composer -# Configurar Apache -RUN a2enmod rewrite \ - && a2enmod headers \ - && a2enmod ssl +RUN curl -L -o /usr/local/bin/yuicompressor.jar \ + https://github.com/yui/yuicompressor/releases/download/v2.4.8/yuicompressor-2.4.8.jar + +RUN a2enmod rewrite headers ssl -# Crear directorio de trabajo WORKDIR /var/www/html -# Copiar archivos del proyecto -COPY . /var/www/html/ +# Copiar código directamente con dueño correcto +COPY --chown=www-data:www-data . /var/www/html/ -# Instalar dependencias de Composer -RUN composer install --prefer-dist --no-dev --optimize-autoloader +RUN composer install --prefer-dist --no-dev --optimize-autoloader || true -# Configurar permisos -RUN chown -R www-data:www-data /var/www/html \ - && chmod -R 755 /var/www/html \ - && mkdir -p /var/www/html/instalacion/temp \ - && mkdir -p /var/www/html/instalacion/log \ - && mkdir -p /var/www/html/instalacion/cache \ - && chown -R www-data:www-data /var/www/html/instalacion/temp \ - && chown -R www-data:www-data /var/www/html/instalacion/log \ - && chown -R www-data:www-data /var/www/html/instalacion/cache \ - && chmod -R 777 /var/www/html/instalacion/temp \ - && chmod -R 777 /var/www/html/instalacion/log \ - && chmod -R 777 /var/www/html/instalacion/cache +# Crear solo carpetas necesarias con permisos +RUN mkdir -p /var/www/html/instalacion/{temp,log,cache} \ + && chown -R www-data:www-data /var/www/html/instalacion/{temp,log,cache} \ + && chmod -R 777 /var/www/html/instalacion/{temp,log,cache} -# Configurar Apache para el proyecto COPY docker/apache-config.conf /etc/apache2/sites-available/000-default.conf -# Script de inicialización +# Copiar rewrite.conf (asegurar ruta correcta) +COPY instalacion/rewrite.conf /var/www/html/instalacion/rewrite.conf + COPY docker/init.sh /usr/local/bin/init.sh RUN chmod +x /usr/local/bin/init.sh EXPOSE 80 - CMD ["/usr/local/bin/init.sh"]