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