Dockerfile 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. # Container OS should have PHP and Apache already
  2. FROM php:7.4-apache
  3. MAINTAINER at@una.io
  4. USER root
  5. # PHP extensions and necessary packages
  6. RUN apt-get update && apt-get install -y \
  7. cron \
  8. libfreetype6-dev \
  9. libjpeg62-turbo-dev \
  10. libmcrypt-dev \
  11. libpng-dev \
  12. libonig-dev \
  13. libmagickwand-dev \
  14. libzip-dev \
  15. sendmail sendmail-bin \
  16. unzip \
  17. && docker-php-ext-install -j$(nproc) exif \
  18. && docker-php-ext-configure gd --with-freetype --with-jpeg \
  19. && docker-php-ext-install -j$(nproc) gd \
  20. && docker-php-ext-install -j$(nproc) iconv \
  21. && docker-php-ext-install -j$(nproc) mbstring \
  22. && docker-php-ext-install -j$(nproc) opcache \
  23. && docker-php-ext-install -j$(nproc) pdo \
  24. && docker-php-ext-install -j$(nproc) pdo_mysql \
  25. && docker-php-ext-install -j$(nproc) zip \
  26. && pecl install mcrypt-1.0.3 \
  27. && docker-php-ext-enable mcrypt \
  28. && pecl install imagick-3.4.4 \
  29. && docker-php-ext-enable imagick \
  30. && rm -rf /var/lib/apt/lists/*
  31. # User & folder
  32. RUN groupadd -r --gid 2483 www-una \
  33. && useradd -r --uid 2483 -g www-una www-una \
  34. && chown www-una:www-una /var/www/html /var/www
  35. # Apache configuration
  36. ENV APACHE_RUN_USER www-una
  37. ENV APACHE_RUN_GROUP www-una
  38. RUN echo "memory_limit=192M \n\
  39. post_max_size=100M \n\
  40. upload_max_filesize=100M \n\
  41. error_log=/var/log/php/error.log \n\
  42. error_reporting=E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT \n\
  43. display_errors=Off \n\
  44. log_errors=On \n\
  45. sendmail_path=/usr/sbin/sendmail -t -i \n\
  46. date.timezone=UTC" > /var/www/php.ini && chown www-una:www-una /var/www/php.ini
  47. RUN mkdir /var/log/php && chown www-una:www-una /var/log/php && chmod 777 /var/log/php && su www-una -c "ln -s /dev/stderr /var/log/php/error.log"
  48. RUN echo "<VirtualHost *:80> \n\
  49. DocumentRoot /var/www/html \n\
  50. PHPINIDir /var/www \n\
  51. ErrorLog /var/www/error.log \n\
  52. CustomLog /var/www/access.log combined \n\
  53. </VirtualHost>" > /etc/apache2/sites-enabled/una.conf
  54. RUN a2enmod rewrite expires
  55. # Expose port and set volume
  56. WORKDIR /var/www/html
  57. VOLUME /var/www
  58. EXPOSE 80
  59. # Entrypoint
  60. COPY docker-entrypoint.sh /usr/local/bin/
  61. ENTRYPOINT ["docker-entrypoint.sh"]
  62. CMD ["apache2-foreground"]