Dockerfile 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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" > /var/www/php.ini && chown www-una:www-una /var/www/php.ini
  48. 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"
  49. RUN echo "<VirtualHost *:80> \n\
  50. DocumentRoot /var/www/html \n\
  51. PHPINIDir /var/www \n\
  52. ErrorLog /var/www/error.log \n\
  53. CustomLog /var/www/access.log combined \n\
  54. </VirtualHost>" > /etc/apache2/sites-enabled/una.conf
  55. RUN a2enmod rewrite expires
  56. # Expose port and set volume
  57. WORKDIR /var/www/html
  58. VOLUME /var/www
  59. EXPOSE 80
  60. # Entrypoint
  61. COPY docker-entrypoint.sh /usr/local/bin/
  62. ENTRYPOINT ["docker-entrypoint.sh"]
  63. CMD ["apache2-foreground"]