|
| 1 | +#!/usr/bin/env bash |
| 2 | + |
| 3 | +set -e |
| 4 | + |
| 5 | +echo "Installing apt dependencies" |
| 6 | + |
| 7 | +# Build packages will be added during the build, but will be removed at the end. |
| 8 | +BUILD_PACKAGES="gettext libcurl4-openssl-dev libfreetype6-dev libicu-dev libjpeg62-turbo-dev \ |
| 9 | + libldap2-dev libmariadb-dev libmemcached-dev libpng-dev libpq-dev libxml2-dev libxslt-dev \ |
| 10 | + uuid-dev" |
| 11 | + |
| 12 | +# Packages for Postgres. |
| 13 | +PACKAGES_POSTGRES="libpq5" |
| 14 | + |
| 15 | +# Packages for MariaDB and MySQL. |
| 16 | +PACKAGES_MYMARIA="libmariadb3" |
| 17 | + |
| 18 | +# Packages for other Moodle runtime dependenices. |
| 19 | +PACKAGES_RUNTIME="ghostscript libaio1 libcurl4 libgss3 libicu67 libmcrypt-dev libxml2 libxslt1.1 \ |
| 20 | + libzip-dev locales sassc unzip zip" |
| 21 | + |
| 22 | +# Packages for Memcached. |
| 23 | +PACKAGES_MEMCACHED="libmemcached11 libmemcachedutil2" |
| 24 | + |
| 25 | +# Packages for LDAP. |
| 26 | +PACKAGES_LDAP="libldap-2.4-2" |
| 27 | + |
| 28 | +apt-get update |
| 29 | +apt-get install -y --no-install-recommends apt-transport-https \ |
| 30 | + $BUILD_PACKAGES \ |
| 31 | + $PACKAGES_POSTGRES \ |
| 32 | + $PACKAGES_MYMARIA \ |
| 33 | + $PACKAGES_RUNTIME \ |
| 34 | + $PACKAGES_MEMCACHED \ |
| 35 | + $PACKAGES_LDAP |
| 36 | + |
| 37 | +# Generate the locales configuration fo rboth Australia, and the US. |
| 38 | +echo 'Generating locales..' |
| 39 | +echo 'en_US.UTF-8 UTF-8' > /etc/locale.gen |
| 40 | +echo 'en_AU.UTF-8 UTF-8' >> /etc/locale.gen |
| 41 | +locale-gen |
| 42 | + |
| 43 | +echo "Installing php extensions" |
| 44 | + |
| 45 | +# ZIP |
| 46 | +docker-php-ext-configure zip --with-zip |
| 47 | +docker-php-ext-install zip |
| 48 | + |
| 49 | +docker-php-ext-install -j$(nproc) \ |
| 50 | + exif \ |
| 51 | + intl \ |
| 52 | + mysqli \ |
| 53 | + opcache \ |
| 54 | + pgsql \ |
| 55 | + soap \ |
| 56 | + xsl |
| 57 | + |
| 58 | +# GD. |
| 59 | +docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr/include/ |
| 60 | +docker-php-ext-install -j$(nproc) gd |
| 61 | + |
| 62 | +# LDAP. |
| 63 | +docker-php-ext-configure ldap |
| 64 | +docker-php-ext-install -j$(nproc) ldap |
| 65 | + |
| 66 | +# APCu, igbinary, Memcached, MongoDB, PCov, Redis, Solr, timezonedb, uuid, XMLRPC (beta) |
| 67 | +pecl install apcu igbinary memcached mongodb pcov redis solr timezonedb uuid xmlrpc-beta |
| 68 | +docker-php-ext-enable apcu igbinary memcached mongodb pcov redis solr timezonedb uuid xmlrpc |
| 69 | + |
| 70 | +echo 'apc.enable_cli = On' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini |
| 71 | + |
| 72 | +echo "pcov.enabled=0" >> /usr/local/etc/php/conf.d/docker-php-ext-pcov.ini |
| 73 | +echo "pcov.exclude='~\/(tests|coverage|vendor|node_modules)\/~'" >> /usr/local/etc/php/conf.d/docker-php-ext-pcov.ini |
| 74 | +echo "pcov.directory=." >> /usr/local/etc/php/conf.d/docker-php-ext-pcov.ini |
| 75 | +echo "pcov.initial.files=1024" >> /usr/local/etc/php/conf.d/docker-php-ext-pcov.ini |
| 76 | + |
| 77 | +# Keep our image size down.. |
| 78 | +pecl clear-cache |
| 79 | +apt-get remove --purge -y $BUILD_PACKAGES |
| 80 | +apt-get autoremove -y |
| 81 | +apt-get clean |
| 82 | +rm -rf /var/lib/apt/lists/* |
0 commit comments