No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 
 

72 líneas
2.5 KiB

  1. FROM php:8.1-apache
  2. ENV APACHE_DOCUMENT_ROOT /var/www/html
  3. ENV APACHE_SERVER_NAME localhost
  4. #ENV APACHE_SERVER_NAME 172.0.0.1
  5. ENV PATH="$PATH"
  6. # Install php and extensions
  7. RUN apt-get update
  8. RUN apt-get install -y \
  9. git zip \
  10. libfreetype6-dev \
  11. libjpeg62-turbo-dev \
  12. libpng-dev \
  13. libicu-dev \
  14. libxml2-dev \
  15. libxslt1-dev \
  16. libzip-dev \
  17. zip \
  18. && docker-php-ext-install -j$(nproc) iconv \
  19. && docker-php-ext-configure gd --with-jpeg=/usr/include/ --with-freetype=/usr/include/ \
  20. && docker-php-ext-install -j$(nproc) gd \
  21. && docker-php-ext-install -j$(nproc) intl \
  22. && docker-php-ext-install -j$(nproc) pdo_mysql \
  23. && docker-php-ext-install bcmath \
  24. && docker-php-ext-install soap \
  25. && docker-php-ext-install xsl \
  26. && docker-php-ext-install zip \
  27. && docker-php-ext-install sockets
  28. # Increase memory limit for php
  29. RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini"
  30. RUN echo 'memory_limit = 2048M' >> /usr/local/etc/php/conf.d/docker-php-memlimit.ini;
  31. # Create ssl directory for apache and copy vhost.conf
  32. RUN mkdir /etc/apache2/sites-available/ssl
  33. COPY ./apache/vhost.conf /etc/apache2/sites-available/000-default.conf
  34. # Copy app code into container -> NOTE: "./" -> means dir of volume in docker-compose (./../src:/var/www/html)
  35. COPY ./ /var/www/html
  36. WORKDIR /var/www/html
  37. RUN chown -R www-data:www-data /var/www/html && a2enmod rewrite ssl
  38. # Install nano
  39. RUN apt install nano
  40. # Download an install composer
  41. RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
  42. # Install xdebug
  43. RUN pecl install xdebug-3.1.5 \
  44. && docker-php-ext-enable xdebug \
  45. && echo "xdebug.mode=debug" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
  46. && echo "xdebug.client_host = host.docker.internal" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
  47. && echo "xdebug.start_with_request=yes" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
  48. && echo 'xdebug.discover_client_host=1' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
  49. && echo 'xdebug.log=/var/www/var/log/xdebug.log' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
  50. && echo 'xdebug.log_level=0' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
  51. # Expose port 80
  52. #EXPOSE 80
  53. # Optional: shell script to initialize
  54. #COPY /init.sh /init.sh
  55. #RUN chmod 755 /init.sh
  56. #RUN chmod +x /init.sh
  57. #ENTRYPOINT ["/init.sh"]
  58. # Set apache foreground explicitely (maybe not necessary in all cases)
  59. CMD ["apache2-foreground"]