Dockerfile 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. FROM php:7.4.33-fpm-alpine3.15
  2. RUN apk update
  3. RUN docker-php-ext-install opcache
  4. RUN docker-php-ext-install mysqli
  5. RUN docker-php-ext-install pdo pdo_mysql
  6. RUN apk add --no-cache libzip-dev && \
  7. docker-php-ext-install zip
  8. # xdebug with VSCODE
  9. ENV XDEBUG_VERSION=2.9.2
  10. RUN apk --no-cache add --virtual .build-deps \
  11. g++ \
  12. autoconf \
  13. make && \
  14. pecl install xdebug-${XDEBUG_VERSION} && \
  15. docker-php-ext-enable xdebug && \
  16. apk del .build-deps && \
  17. rm -r /tmp/pear/* && \
  18. echo -e "xdebug.remote_enable=1\n\
  19. xdebug.remote_autostart=1\n\
  20. xdebug.remote_connect_back=0\n\
  21. xdebug.remote_port=9001\n\
  22. xdebug.idekey=\"VSCODE\"\n\
  23. xdebug.remote_host=host.docker.internal" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
  24. # Instalar herramientas básicas como chmod
  25. RUN apk add --no-cache coreutils
  26. #COPY ../../../files/ /var/www
  27. # Opcional: Crear carpetas con permisos específicos
  28. RUN mkdir -p /var/www/html/DOWNLOADS && \
  29. mkdir -p /var/www/html/DOWNLOADS/DAILY && \
  30. mkdir -p /var/www/html/DOWNLOADS/MONTH && \
  31. ls -l /var/www/html/DOWNLOADS && \
  32. chmod 755 /var/www/html/DOWNLOADS/DAILY && \
  33. chmod 755 /var/www/html/DOWNLOADS/MONTH
  34. # Configurar PHP para permitir ejecución prolongada
  35. RUN echo "max_execution_time = 0" >> /usr/local/etc/php/conf.d/99-custom.ini
  36. RUN echo "max_input_time = 0" >> /usr/local/etc/php/conf.d/99-custom.ini
  37. RUN echo "memory_limit = 3G" >> /usr/local/etc/php/conf.d/99-custom.ini
  38. RUN echo "post_max_size = 2G" >> /usr/local/etc/php/conf.d/99-custom.ini
  39. RUN echo "upload_max_filesize = 1G" >> /usr/local/etc/php/conf.d/99-custom.ini
  40. EXPOSE 9000
  41. # 5. composer
  42. COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
  43. # Copiar todo el contenido desde la raíz del contexto al contenedor
  44. COPY ./html /var/www/html
  45. # Cambiar permisos de la carpeta de logs y otras necesarias
  46. RUN chown -R www-data:www-data /var/www/html/application/logs && \
  47. chmod -R 775 /var/www/html/application/logs && \
  48. chmod -R 775 /var/www/html/DOWNLOADS
  49. WORKDIR /var/www/html