Dockerfile 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. # Container OS should have PHP and Apache already
  2. FROM php:8.2-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. libwebp-dev \
  13. libonig-dev \
  14. libmagickwand-dev \
  15. libzip-dev \
  16. sendmail sendmail-bin \
  17. unzip \
  18. && docker-php-ext-install -j$(nproc) exif \
  19. && docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \
  20. && docker-php-ext-install -j$(nproc) gd \
  21. && docker-php-ext-install -j$(nproc) iconv \
  22. && docker-php-ext-install -j$(nproc) mbstring \
  23. && docker-php-ext-install -j$(nproc) opcache \
  24. && docker-php-ext-install -j$(nproc) pdo \
  25. && docker-php-ext-install -j$(nproc) pdo_mysql \
  26. && docker-php-ext-install -j$(nproc) zip \
  27. && pecl install mcrypt-1.0.6 \
  28. && docker-php-ext-enable mcrypt \
  29. && pecl install imagick \
  30. && docker-php-ext-enable imagick \
  31. && rm -rf /var/lib/apt/lists/*
  32. # User & folder
  33. RUN groupadd -r --gid 2483 www-una \
  34. && useradd -r --uid 2483 -g www-una www-una \
  35. && chown www-una:www-una /var/www/html /var/www
  36. # Apache configuration
  37. ENV APACHE_RUN_USER www-una
  38. ENV APACHE_RUN_GROUP www-una
  39. RUN echo "memory_limit=192M \n\
  40. post_max_size=100M \n\
  41. upload_max_filesize=100M \n\
  42. error_log=/var/log/php/error.log \n\
  43. error_reporting=E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT \n\
  44. display_errors=Off \n\
  45. log_errors=On \n\
  46. sendmail_path=/usr/sbin/sendmail -t -i \n\
  47. date.timezone=UTC" > /usr/local/etc/php/conf.d/una.ini
  48. RUN mkdir /var/log/php && mkdir /var/www/ssl && 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"
  49. RUN a2enmod rewrite expires ssl
  50. # Expose port and set volume
  51. WORKDIR /var/www/html
  52. VOLUME /var/www
  53. EXPOSE 80
  54. # Entrypoint
  55. COPY docker-entrypoint.sh /usr/local/bin/
  56. ENTRYPOINT ["docker-entrypoint.sh"]
  57. CMD ["apache2-foreground"]