Dockerfile 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. FROM php:5.6-apache
  2. COPY . /elgg-docker/
  3. COPY docker_config/php.ini /usr/local/etc/php/
  4. RUN apt-get update && apt-get install -y \
  5. libfreetype6-dev \
  6. libjpeg62-turbo-dev \
  7. libmcrypt-dev \
  8. libpng12-dev \
  9. netcat \
  10. mysql-client \
  11. locales \
  12. libicu-dev
  13. # Elgg requirements
  14. RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/
  15. RUN docker-php-ext-install gd
  16. RUN docker-php-ext-install pdo pdo_mysql mysql
  17. RUN docker-php-ext-install mbstring
  18. WORKDIR /var/www/html/
  19. #Configs apache
  20. RUN a2enmod rewrite
  21. #Set time zone in server
  22. ENV TIMEZONE=${TIMEZONE:-"America/Sao_Paulo"}
  23. RUN cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime
  24. #Set time zone in PHP
  25. RUN sed -i "s#{{timezone}}#$TIMEZONE#g" /usr/local/etc/php/php.ini
  26. #Set default locale in PHP
  27. #See http://php.net/setlocale
  28. ENV PHP_DEFAULT_LOCALE=${PHP_DEFAULT_LOCALE:-"pt_BR.UTF-8"}
  29. RUN docker-php-ext-install intl
  30. RUN sed -i -e "s/# $PHP_DEFAULT_LOCALE UTF-8/$PHP_DEFAULT_LOCALE UTF-8/" /etc/locale.gen && \
  31. echo "LANG=\"$PHP_DEFAULT_LOCALE\"">/etc/default/locale && \
  32. dpkg-reconfigure --frontend=noninteractive locales
  33. RUN sed -i "s#{{locale}}#$PHP_DEFAULT_LOCALE#g" /usr/local/etc/php/php.ini
  34. # set defaults or env vars for Elgg and MySQL
  35. # MySQL
  36. ENV MYSQL_USER=${MYSQL_USER:-"root"}
  37. ENV MYSQL_PASS=${MYSQL_PASS:-"root-pass"}
  38. ENV MYSQL_PORT=${MYSQL_PORT:-"3306"}
  39. # required for installation
  40. ENV ELGG_DB_HOST=${ELGG_DB_HOST:-"mysql"}
  41. ENV ELGG_DB_USER=$MYSQL_USER
  42. ENV ELGG_DB_PASS=$MYSQL_PASS
  43. ENV ELGG_DB_NAME=${ELGG_DB_NAME:-"elgg"}
  44. ENV ELGG_SITE_NAME=${ELGG_SITE_NAME:-"Elgg Site"}
  45. ENV ELGG_DATA_ROOT=${ELGG_DATA_ROOT:-"/media/elgg/"}
  46. ENV ELGG_WWW_ROOT=${ELGG_WWW_ROOT:-"http://localhost:8000"}
  47. # admin user setup
  48. ENV ELGG_DISPLAY_NAME=${ELGG_DISPLAY_NAME:-"Admin"}
  49. ENV ELGG_EMAIL=${ELGG_EMAIL:-"admin@myelgg.org"}
  50. ENV ELGG_USERNAME=${ELGG_USERNAME:-"admin"}
  51. ENV ELGG_PASSWORD=${ELGG_PASSWORD:-"admin-pass"}
  52. # optional for installation
  53. ENV ELGG_DB_PREFIX=${ELGG_DB_PREFIX:-"elgg_"}
  54. ENV ELGG_PATH=${ELGG_PATH:-"/var/www/html/"}
  55. # 2 is ACCESS_PUBLIC
  56. ENV ELGG_SITE_ACCESS=${ELGG_SITE_ACCESS:-"2"}
  57. # If true, enable xdebug and vim editor
  58. ENV DEBUG=${DEBUG:-"false"}
  59. # If true, should be informed of the file name that contains the dump to be restored in the database.
  60. # The file name must be the address for the directory /var/www/html/. Example: /var/www/html/deploy/dump-initial-data.sql
  61. ENV MYSQL_DATABASE_INITIAL_DATA=${MYSQL_DATABASE_INITIAL_DATA:-"false"}
  62. RUN chmod +x /elgg-docker/elgg-install.sh
  63. RUN chmod +x /elgg-docker/environment-setup.sh
  64. RUN mkdir $ELGG_DATA_ROOT
  65. RUN chown -R www-data:www-data $ELGG_DATA_ROOT
  66. RUN chmod 770 -R $ELGG_DATA_ROOT
  67. RUN /elgg-docker/environment-setup.sh