|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +set -e |
| 4 | + |
| 5 | +DOCKER_PHP_EXT_INSTALL="bcmath bz2 calendar dba exif gettext iconv imap intl mcrypt mysqli pdo_dblib pcntl pspell soap sockets xmlrpc xsl zip" |
| 6 | +DOCKER_PHP_PECL_INSTALL="apc igbinary memcache redis" |
| 7 | + |
| 8 | +RUN_PACKAGES="" |
| 9 | +TMP_PACKAGES="" |
| 10 | +RUN_PACKAGES="$RUN_PACKAGES freetds-bin" |
| 11 | +RUN_PACKAGES="$RUN_PACKAGES freetds-common" |
| 12 | +RUN_PACKAGES="$RUN_PACKAGES freetds-dev" |
| 13 | +RUN_PACKAGES="$RUN_PACKAGES libc-client2007e" |
| 14 | +TMP_PACKAGES="$TMP_PACKAGES libgmp-dev" |
| 15 | +TMP_PACKAGES="$TMP_PACKAGES libc-client2007e-dev" |
| 16 | +RUN_PACKAGES="$RUN_PACKAGES libkrb5-dev" |
| 17 | +TMP_PACKAGES="$TMP_PACKAGES libldap2-dev" |
| 18 | +RUN_PACKAGES="$RUN_PACKAGES libmcrypt-dev" |
| 19 | +RUN_PACKAGES="$RUN_PACKAGES libpspell-dev" |
| 20 | +RUN_PACKAGES="$RUN_PACKAGES libxslt1-dev" |
| 21 | +TMP_PACKAGES="$TMP_PACKAGES libfreetype6-dev" # gd |
| 22 | +RUN_PACKAGES="$RUN_PACKAGES libgd3" # gd |
| 23 | +TMP_PACKAGES="$TMP_PACKAGES libgd-dev" # gd |
| 24 | +TMP_PACKAGES="$TMP_PACKAGES libjpeg62-turbo-dev" # gd |
| 25 | +RUN_PACKAGES="$RUN_PACKAGES libmagickwand-6.q16" # imagick |
| 26 | +TMP_PACKAGES="$TMP_PACKAGES libmagickwand-6.q16-dev" # imagick |
| 27 | +TMP_PACKAGES="$TMP_PACKAGES libmemcached-dev" # memcached |
| 28 | +RUN_PACKAGES="$RUN_PACKAGES libmemcachedutil2" # memcached |
| 29 | +TMP_PACKAGES="$TMP_PACKAGES libpng-dev" # gd |
| 30 | +RUN_PACKAGES="$RUN_PACKAGES libssl-dev" |
| 31 | +RUN_PACKAGES="$RUN_PACKAGES libbz2-dev" # bz2 |
| 32 | +RUN_PACKAGES="$RUN_PACKAGES libxml2-dev" # soap |
| 33 | +RUN_PACKAGES="$RUN_PACKAGES libicu-dev" # icu |
| 34 | +RUN_PACKAGES="$RUN_PACKAGES libxpm4" # gd |
| 35 | +TMP_PACKAGES="$TMP_PACKAGES libxpm-dev" # gd |
| 36 | +TMP_PACKAGES="$TMP_PACKAGES libwebp-dev" # gd |
| 37 | +RUN_PACKAGES="$RUN_PACKAGES mysql-client" |
| 38 | +TMP_PACKAGES="$TMP_PACKAGES git" |
| 39 | +RUN_PACKAGES="$RUN_PACKAGES unzip" |
| 40 | +eval "apt update && apt upgrade -y && apt-get update && apt-get install --no-install-recommends -y $TMP_PACKAGES $RUN_PACKAGES" |
| 41 | + |
| 42 | +eval "ln -s /usr/lib/x86_64-linux-gnu/libsybdb.a /usr/lib/" |
| 43 | + |
| 44 | +case "$DOCKER_PHP_EXT_INSTALL" in |
| 45 | + *gd*) |
| 46 | + echo 'Preparing module: gd...' |
| 47 | + docker-php-ext-configure gd \ |
| 48 | + --with-gd=/usr/include \ |
| 49 | + --enable-gd-native-ttf \ |
| 50 | + --with-freetype-dir=/usr/include/ \ |
| 51 | + --with-jpeg-dir=/usr/include/ \ |
| 52 | + --with-png-dir=/usr/include/ \ |
| 53 | + --with-webp-dir=/usr/include/ \ |
| 54 | + --with-xpm-dir=/usr/include |
| 55 | + ;; |
| 56 | +esac |
| 57 | + |
| 58 | +case "$DOCKER_PHP_EXT_INSTALL" in |
| 59 | + *imap*) |
| 60 | + echo 'Preparing module: imap...' |
| 61 | + docker-php-ext-configure imap \ |
| 62 | + --with-kerberos \ |
| 63 | + --with-imap-ssl |
| 64 | + ;; |
| 65 | +esac |
| 66 | + |
| 67 | +# for improved ASLR and optimizations |
| 68 | +# https://github.com/docker-library/php/issues/105#issuecomment-278114879 |
| 69 | +export CFLAGS="$PHP_CFLAGS" CPPFLAGS="$PHP_CPPFLAGS" LDFLAGS="$PHP_LDFLAGS" |
| 70 | + |
| 71 | +eval "docker-php-ext-install $DOCKER_PHP_EXT_INSTALL" |
| 72 | +eval "pecl install imagick $DOCKER_PHP_PECL_INSTALL" |
| 73 | +eval "docker-php-ext-enable imagick $DOCKER_PHP_PECL_INSTALL" |
| 74 | +/tmp/build_apache.sh |
| 75 | + |
| 76 | +# clean up |
| 77 | +pecl clear-cache |
| 78 | +rm -rf /tmp/* /var/lib/apt/lists/* |
| 79 | +eval apt-mark manual "$RUN_PACKAGES" |
| 80 | +eval "apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $TMP_PACKAGES" |
| 81 | + |
| 82 | +# Enable mod_rewrite for apache images |
| 83 | +a2enmod rewrite |
| 84 | +service apache2 restart |
0 commit comments