|
| 1 | +# |
| 2 | +# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh" |
| 3 | +# |
| 4 | +# PLEASE DO NOT EDIT IT DIRECTLY. |
| 5 | +# |
| 6 | + |
| 7 | +FROM php:7.0-apache-stretch |
| 8 | + |
| 9 | +ARG DEBIAN_FRONTEND=noninteractive |
| 10 | + |
| 11 | +# Install NVM and the current (as of 26/02/2019) LTS version of Node. |
| 12 | +ENV NVM_DIR /usr/local/nvm |
| 13 | +ENV NODE_VERSION lts/carbon |
| 14 | +RUN mkdir -p $NVM_DIR && \ |
| 15 | + curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash && \ |
| 16 | + . $NVM_DIR/nvm.sh && nvm install $NODE_VERSION && nvm use --delete-prefix $NODE_VERSION |
| 17 | + |
| 18 | +##<autogenerated-phpversion>## |
| 19 | +##</autogenerated-phpversion>## |
| 20 | + |
| 21 | +# Build packages will be added during the build, but will be removed at the end. |
| 22 | +ENV BUILD_PACKAGES \ |
| 23 | + gettext gnupg libcurl4-openssl-dev libfreetype6-dev libicu-dev libjpeg62-turbo-dev \ |
| 24 | + libldap2-dev libmariadbclient-dev libmemcached-dev libpng-dev libpq-dev libxml2-dev libxslt-dev \ |
| 25 | + zlib1g-dev |
| 26 | + |
| 27 | +# Packages for Postgres. |
| 28 | +ENV PACKAGES_POSTGRES libpq5 |
| 29 | + |
| 30 | +# Packages for MariaDB and MySQL. |
| 31 | +ENV PACKAGES_MYMARIA libmariadbclient18 |
| 32 | + |
| 33 | +# Packages for other Moodle runtime dependenices. |
| 34 | +ENV PACKAGES_RUNTIME ghostscript libaio1 libcurl3 libgss3 libicu57 libmcrypt-dev libxml2 libxslt1.1 \ |
| 35 | + locales sassc unzip unixodbc sassc |
| 36 | + |
| 37 | +# Packages for Memcached. |
| 38 | +ENV PACKAGES_MEMCACHED libmemcached11 libmemcachedutil2 |
| 39 | + |
| 40 | +# Packages for LDAP. |
| 41 | +ENV PACKAGES_LDAP libldap-2.4-2 |
| 42 | + |
| 43 | +ENV PHP_EXTENSIONS intl \ |
| 44 | + mysqli \ |
| 45 | + opcache \ |
| 46 | + pgsql \ |
| 47 | + soap \ |
| 48 | + xsl \ |
| 49 | + xmlrpc \ |
| 50 | + zip |
| 51 | + |
| 52 | +# Install the standard PHP extensions. |
| 53 | +RUN apt-get update; apt-get install -y --no-install-recommends apt-transport-https \ |
| 54 | + $BUILD_PACKAGES \ |
| 55 | + $PACKAGES_POSTGRES \ |
| 56 | + $PACKAGES_MYMARIA \ |
| 57 | + $PACKAGES_RUNTIME \ |
| 58 | + $PACKAGES_MEMCACHED \ |
| 59 | + $PACKAGES_LDAP \ |
| 60 | + echo 'Generating locales..'; \ |
| 61 | + echo 'en_US.UTF-8 UTF-8' > /etc/locale.gen; \ |
| 62 | + echo 'en_AU.UTF-8 UTF-8' >> /etc/locale.gen; \ |
| 63 | + locale-gen; \ |
| 64 | +\ |
| 65 | + echo "Installing php extensions"; \ |
| 66 | + docker-php-ext-install -j$(nproc) $PHP_EXTENSIONS; \ |
| 67 | +\ |
| 68 | + # GD. |
| 69 | + docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/; \ |
| 70 | + docker-php-ext-install -j$(nproc) gd; \ |
| 71 | +\ |
| 72 | + # LDAP. |
| 73 | + docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/; \ |
| 74 | + docker-php-ext-install -j$(nproc) ldap; \ |
| 75 | +\ |
| 76 | + # SOLR, Memcached, Redis, APCu, igbinary. |
| 77 | + pecl install solr memcached redis apcu igbinary; \ |
| 78 | + docker-php-ext-enable solr memcached redis apcu igbinary; \ |
| 79 | +\ |
| 80 | + echo 'apc.enable_cli = On' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ |
| 81 | +\ |
| 82 | + # Keep our image size down.. |
| 83 | + pecl clear-cache; \ |
| 84 | + apt-get remove --purge -y $BUILD_PACKAGES; \ |
| 85 | + apt-get autoremove -y; \ |
| 86 | + apt-get clean; \ |
| 87 | + rm -rf /var/lib/apt/lists/* |
| 88 | + |
| 89 | +##<autogenerated-db>## |
| 90 | +# Install the MSSQL Extension. |
| 91 | +ENV BUILD_PACKAGES gnupg unixodbc-dev |
| 92 | + |
| 93 | +RUN apt-get update; apt-get install -y --no-install-recommends apt-transport-https $BUILD_PACKAGES; \ |
| 94 | +\ |
| 95 | + # Install Microsoft dependcies for sqlsrv. |
| 96 | + curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -; \ |
| 97 | + curl https://packages.microsoft.com/config/debian/9/prod.list -o /etc/apt/sources.list.d/mssql-release.list; \ |
| 98 | + apt-get update; \ |
| 99 | + ACCEPT_EULA=Y apt-get install -y msodbcsql17; \ |
| 100 | +\ |
| 101 | + pecl install sqlsrv; \ |
| 102 | + docker-php-ext-enable sqlsrv; \ |
| 103 | +\ |
| 104 | + # Keep our image size down. |
| 105 | + pecl clear-cache; \ |
| 106 | + apt-get remove --purge -y $BUILD_PACKAGES; \ |
| 107 | + apt-get autoremove -y; \ |
| 108 | + apt-get clean; \ |
| 109 | + rm -rf /var/lib/apt/lists/* |
| 110 | +##</autogenerated-db>## |
| 111 | + |
| 112 | +##<autogenerated-variant>## |
| 113 | +# Packages required for moodle-local_ci. |
| 114 | +ENV PACKAGES_CI git |
| 115 | + |
| 116 | +# Install the standard PHP extensions. |
| 117 | +RUN apt-get update; apt-get install -y --no-install-recommends apt-transport-https \ |
| 118 | + $PACKAGES_CI; \ |
| 119 | +\ |
| 120 | + # Keep our image size down.. |
| 121 | + pecl clear-cache; \ |
| 122 | + apt-get autoremove -y; \ |
| 123 | + apt-get clean; \ |
| 124 | + rm -rf /var/lib/apt/lists/* |
| 125 | +##</autogenerated-variant>## |
| 126 | + |
| 127 | +# Set the custom entrypoint. |
| 128 | +ADD moodle-php-entrypoint /usr/local/bin/ |
| 129 | +ENTRYPOINT ["moodle-php-entrypoint"] |
| 130 | +CMD ["apache2-foreground"] |
0 commit comments