# Imagen base FROM php:7.2-fpm # Actualizar el sistema e instalar dependencias RUN apt-get update && apt-get install -y \ libfreetype6-dev \ libcurl4-openssl-dev pkg-config libssl-dev \ libjpeg62-turbo-dev \ git \ libzip-dev \ zip \ libmcrypt-dev \ libmagickwand-dev \ libpng-dev \ libxml2-dev \ supervisor \ nginx \ && docker-php-ext-install -j$(nproc) iconv \ && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-install -j$(nproc) gd \ && docker-php-ext-install -j$(nproc) pdo_mysql zip \ && docker-php-ext-install exif \ && docker-php-ext-install soap \ && docker-php-ext-install zip \ && pecl install imagick \ && docker-php-ext-enable imagick #Limpiar cache RUN apt-get clean && rm -rf /var/lib/apt/lists/* # Instalar Composer RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer # Copiar tu aplicación al directorio de trabajo RUN mkdir /var/www/laravel # Establecer el directorio de trabajo WORKDIR /var/www/laravel RUN echo 'memory_limit = 10G' >> /usr/local/etc/php/conf.d/docker-php-memlimit.ini; RUN usermod -a -G www-data root # Configuración adicional de Nginx, PHP y supervisord COPY ./docker/supervisor.conf /etc/supervisor/conf.d/supervisord.conf COPY ./docker/php.ini /usr/local/etc/php/conf.d/prep.ini COPY ./docker/nginx.conf /etc/nginx/sites-available/default COPY ./docker/nginx-default.conf /etc/nginx/nginx.conf COPY ./docker/php-fpm.conf /usr/local/etc/php-fpm.d/www.conf COPY ./docker/entrypoint-production.sh /usr/bin/docker-entrypoint.sh RUN ["chmod", "+x", "/usr/bin/docker-entrypoint.sh"] # PHP Error Log Files RUN mkdir /var/log/php RUN touch /var/log/php/errors.log && chmod 777 /var/log/php/errors.log # Establecer el directorio de trabajo WORKDIR /var/www/laravel # Instalar dependencias de Composer #COPY ./composer.json /var/www/laravel #COPY ./composer.lock /var/www/laravel #RUN cd /var/www/laravel \ && composer install --no-interaction --no-plugins --no-scripts # Configurar permisos de directorios y archivos #RUN chown -R www-data:www-data /var/www/laravel/storage \ && chown -R www-data:www-data /var/www/laravel/bootstrap # Comando por defecto al iniciar el contenedor EXPOSE 80 ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"] CMD ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisor/conf.d/supervisord.conf"]