Dockerfile 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. # Trident docker file
  2. FROM php:5-apache
  3. MAINTAINER dev@boonex.com
  4. # PHP extensions and necessary packages
  5. RUN apt-get update && apt-get install -y \
  6. cron \
  7. libfreetype6-dev \
  8. libjpeg62-turbo-dev \
  9. libmcrypt-dev \
  10. libpng12-dev \
  11. sendmail sendmail-bin \
  12. unzip \
  13. && docker-php-ext-install -j$(nproc) exif \
  14. && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
  15. && docker-php-ext-install -j$(nproc) gd \
  16. && docker-php-ext-install -j$(nproc) iconv \
  17. && docker-php-ext-install -j$(nproc) mbstring \
  18. && docker-php-ext-install -j$(nproc) mcrypt \
  19. && docker-php-ext-install -j$(nproc) mysql \
  20. && docker-php-ext-install -j$(nproc) opcache \
  21. && docker-php-ext-install -j$(nproc) pdo \
  22. && docker-php-ext-install -j$(nproc) pdo_mysql \
  23. && docker-php-ext-install -j$(nproc) zip \
  24. && rm -rf /var/lib/apt/lists/*
  25. # User folder
  26. RUN groupadd -r --gid 2483 trident \
  27. && useradd -r --uid 2483 -g trident trident
  28. RUN chown trident:trident /var/www/html /var/www
  29. # Unzip package
  30. USER trident
  31. WORKDIR /var/www/html
  32. ENV TRIDENT_VERSION 8.0.1
  33. # Alternative download URL - https://github.com/boonex/trident/releases/download/${TRIDENT_VERSION}/Trident-v.${TRIDENT_VERSION}.zip
  34. RUN curl -fSL "http://ci.boonex.com/builds/Trident-v.${TRIDENT_VERSION}.zip" -o trident.zip \
  35. && unzip -o trident.zip \
  36. && rm trident.zip \
  37. && mv Trident-v.${TRIDENT_VERSION}/* . \
  38. && mv Trident-v.${TRIDENT_VERSION}/.htaccess . \
  39. && rm -rf "Trident-v.${TRIDENT_VERSION}"
  40. RUN chmod 777 inc cache cache_public logs tmp storage \
  41. && chmod +x plugins/ffmpeg/ffmpeg.exe
  42. # Apache configuration
  43. USER root
  44. RUN echo "memory_limit=192M \n\
  45. post_max_size=100M \n\
  46. upload_max_filesize=100M \n\
  47. error_log=/var/www/php_error.log \n\
  48. error_reporting=E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT \n\
  49. display_errors=Off \n\
  50. log_errors=On \n\
  51. sendmail_path=/usr/sbin/sendmail -t -i \n\
  52. date.timezone=UTC" > /var/www/php.ini && chown trident:trident /var/www/php.ini
  53. RUN touch /var/www/php_error.log \
  54. && chown trident:trident /var/www/php_error.log \
  55. && chmod 666 /var/www/php_error.log
  56. RUN echo "<VirtualHost *:80> \n\
  57. DocumentRoot /var/www/html \n\
  58. PHPINIDir /var/www \n\
  59. ErrorLog /var/www/error.log \n\
  60. CustomLog /var/www/access.log combined \n\
  61. </VirtualHost>" > /etc/apache2/sites-enabled/trident.conf
  62. RUN a2enmod rewrite expires
  63. # Crontab
  64. RUN echo "* * * * * php -c /var/www /var/www/html/periodic/cron.php" > /var/www/crontab
  65. RUN chown trident:trident /var/www/crontab \
  66. && crontab -u trident /var/www/crontab
  67. # Expose port
  68. VOLUME /var/www
  69. EXPOSE 80