dockerfiles/php-7.4-opt/build.Dockerfile
2022-03-26 22:56:52 +01:00

205 lines
7.5 KiB
Docker

FROM debian/eol:wheezy
ENV MAIN_PREFIX_NO_ROOT opt/php-7.4
ENV MAIN_PREFIX /$MAIN_PREFIX_NO_ROOT
ENV DEP_PREFIX $MAIN_PREFIX/dependencies
ENV PHP_VERSION php-7.4.28
ENV PACKAGE_NAME $PHP_VERSION-opt
RUN apt-get update \
&& apt-get install -y \
curl \
build-essential \
net-tools \
autoconf \
pkg-config \
wget \
libxml2-dev \
libkrb5-dev \
libssl-dev \
libsqlite3-dev \
libbz2-dev \
libcurl4-openssl-dev \
libpng12-dev libjpeg8-dev \
libfreetype6-dev \
libc-client-dev \
libpq-dev \
libxslt1-dev \
checkinstall \
zlib1g-dev \
libtool \
bison \
libgmp-dev \
libtidy-dev \
libgd2-xpm-dev \
libmagickwand-dev \
libmagickcore-dev \
libmemcached-dev
RUN wget https://cmake.org/files/v2.8/cmake-2.8.12.1.tar.gz
RUN tar xzf cmake-2.8.12.1.tar.gz
RUN cd cmake-2.8.12.1 \
&& ./bootstrap \
&& make \
&& make install
RUN wget https://github.com/libjpeg-turbo/libjpeg-turbo/archive/2.0.6.tar.gz -O libjpeg-turbo-2.0.6.tar.gz
RUN tar xzf libjpeg-turbo-2.0.6.tar.gz
RUN cd libjpeg-turbo-2.0.6 \
&& mkdir build \
&& cd build \
&& cmake -DCMAKE_INSTALL_PREFIX=$DEP_PREFIX -DCMAKE_BUILD_TYPE=RELEASE -DENABLE_STATIC=FALSE -DCMAKE_INSTALL_DEFAULT_LIBDIR=lib .. \
&& make \
&& checkinstall -y --pkgname $PACKAGE_NAME-libjpeg-turbo --pkgversion 1
RUN ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a
RUN wget https://web.mit.edu/kerberos/dist/krb5/1.17/krb5-1.17.2.tar.gz
RUN tar xzf krb5-1.17.2.tar.gz
RUN cd krb5-1.17.2/src \
&& ./configure --prefix=$DEP_PREFIX \
&& make \
&& checkinstall -y --pkgname $PACKAGE_NAME-krb5 --pkgversion 1
RUN wget https://github.com/unicode-org/icu/releases/download/release-50-2/icu4c-50_2-src.tgz
RUN tar xzf icu4c-50_2-src.tgz
RUN cd icu/source/ \
&& ./configure --prefix=$DEP_PREFIX \
&& make \
&& checkinstall -y --pkgname $PACKAGE_NAME-icu --pkgversion 1
RUN wget https://github.com/kkos/oniguruma/archive/v6.9.6.tar.gz
RUN tar xzf v6.9.6.tar.gz
RUN cd oniguruma-6.9.6 \
&& autoreconf -vfi \
&& ./configure --prefix=$DEP_PREFIX \
&& make \
&& checkinstall -y --pkgname $PACKAGE_NAME-oniguruma
RUN wget https://libzip.org/download/libzip-0.11.2.tar.gz --no-check-certificate
RUN tar xzf libzip-0.11.2.tar.gz
# in this case checkinstall only works after "make install"
RUN cd libzip-0.11.2 \
&& ./configure --prefix=$DEP_PREFIX \
&& make \
&& make install \
&& checkinstall -y --pkgname $PACKAGE_NAME-libzip
RUN wget https://github.com/libgd/libgd/releases/download/gd-2.1.1/libgd-2.1.1.tar.gz
RUN tar xzf libgd-2.1.1.tar.gz
RUN cd libgd-2.1.1 \
&& ./configure --prefix=$DEP_PREFIX \
&& make \
&& checkinstall -y --pkgname $PACKAGE_NAME-libgd
RUN curl -k https://download.libsodium.org/libsodium/releases/libsodium-1.0.18.tar.gz > libsodium-1.0.18.tar.gz
RUN tar xzf libsodium-1.0.18.tar.gz
RUN cd libsodium-1.0.18 \
&& ./configure --prefix=$DEP_PREFIX \
&& make \
&& checkinstall -y --pkgname $PACKAGE_NAME-libsodium
RUN wget https://www.php.net/distributions/$PHP_VERSION.tar.gz
RUN tar xzf $PHP_VERSION.tar.gz
RUN cd $PHP_VERSION \
&& PKG_CONFIG_PATH=$DEP_PREFIX/lib/pkgconfig ./configure \
--prefix=$MAIN_PREFIX \
#--with-libdir=/lib/x86_64-linux-gnu \
#--disable-rpath \
--enable-static \
--enable-bcmath \
--enable-calendar \
--enable-exif \
--enable-fpm \
--enable-ftp \
--enable-gd \
--enable-intl \
--enable-mbstring \
--enable-pcntl \
--enable-pdo \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-zip \
--with-bz2 \
--with-config-file-path=$MAIN_PREFIX/etc \
--with-config-file-scan-dir=$MAIN_PREFIX/etc/conf.d \
--with-curl \
--with-external-gd \
--with-freetype \
--with-gettext \
--with-gmp \
--with-imap \
--with-imap-ssl \
--with-jpeg \
--with-kerberos \
--with-ldap=shared \
--with-mhash \
--with-mysql-sock=/var/run/mysqld/mysqld.sock \
--with-mysqli \
--with-openssl \
--with-pdo-mysql \
--with-pdo-sqlite \
--with-pear \
--with-sodium \
--with-sqlite3 \
--with-tidy \
--with-xmlrpc \
--with-xpm \
--with-xsl \
--with-zip \
--with-zlib \
&& make
RUN cd $PHP_VERSION \
&& mkdir -p $MAIN_PREFIX_NO_ROOT/etc/conf.d \
&& cp php.ini-production $MAIN_PREFIX_NO_ROOT/etc/php.ini \
&& sed -i -E 's/^short_open_tag =.+$/short_open_tag = On/' $MAIN_PREFIX_NO_ROOT/etc/php.ini \
&& sed -i -E 's/^expose_php =.+$/expose_php = Off/' $MAIN_PREFIX_NO_ROOT/etc/php.ini \
&& sed -i -E 's/^memory_limit =.+$/memory_limit = 256M/' $MAIN_PREFIX_NO_ROOT/etc/php.ini \
&& sed -i -E 's/^;?date\.timezone =.*$/date.timezone = Europe\/Berlin/' $MAIN_PREFIX_NO_ROOT/etc/php.ini \
&& sed -i -E 's/^mail\.add_x_header =.+$/mail.add_x_header = On/' $MAIN_PREFIX_NO_ROOT/etc/php.ini \
&& echo zend_extension=opcache.so > $MAIN_PREFIX_NO_ROOT/etc/conf.d/opcache.ini \
&& echo $MAIN_PREFIX_NO_ROOT/etc/php.ini >> files_to_add \
&& echo $MAIN_PREFIX_NO_ROOT/etc/conf.d/opcache.ini >> files_to_add \
&& checkinstall -y --pkgname $PACKAGE_NAME --include files_to_add
RUN cd /$PHP_VERSION/ext \
&& wget https://github.com/Imagick/imagick/archive/3.4.4.tar.gz \
&& tar xzf 3.4.4.tar.gz \
&& cd imagick-3.4.4 \
&& $MAIN_PREFIX/bin/phpize \
&& ./configure --with-php-config=$MAIN_PREFIX/bin/php-config \
&& make
RUN cd /$PHP_VERSION/ext/imagick-3.4.4 \
&& mkdir -p $MAIN_PREFIX_NO_ROOT/etc/conf.d \
&& echo extension=imagick.so > $MAIN_PREFIX_NO_ROOT/etc/conf.d/imagick.ini \
&& echo $MAIN_PREFIX_NO_ROOT/etc/conf.d/imagick.ini >> files_to_add \
&& checkinstall -y --pkgname $PACKAGE_NAME-imagick --include files_to_add
RUN cd /$PHP_VERSION/ext \
&& wget https://github.com/krakjoe/apcu/archive/v5.1.20.tar.gz \
&& tar xzf v5.1.20.tar.gz \
&& cd apcu-5.1.20 \
&& $MAIN_PREFIX/bin/phpize \
&& ./configure --with-php-config=$MAIN_PREFIX/bin/php-config \
&& make
RUN cd /$PHP_VERSION/ext/apcu-5.1.20 \
&& mkdir -p $MAIN_PREFIX_NO_ROOT/etc/conf.d \
&& echo extension=apcu.so > $MAIN_PREFIX_NO_ROOT/etc/conf.d/apcu.ini \
&& echo $MAIN_PREFIX_NO_ROOT/etc/conf.d/apcu.ini >> files_to_add \
&& checkinstall -y --pkgname $PACKAGE_NAME-apcu --include files_to_add
RUN cd /$PHP_VERSION/ext \
&& wget https://github.com/php-memcached-dev/php-memcached/archive/v3.1.5.tar.gz \
&& tar xzf v3.1.5.tar.gz \
&& cd php-memcached-3.1.5 \
&& $MAIN_PREFIX/bin/phpize \
&& ./configure --with-php-config=$MAIN_PREFIX/bin/php-config --disable-memcached-sasl \
&& make
RUN cd /$PHP_VERSION/ext/php-memcached-3.1.5 \
&& mkdir -p $MAIN_PREFIX_NO_ROOT/etc/conf.d \
&& echo extension=memcached.so > $MAIN_PREFIX_NO_ROOT/etc/conf.d/memcached.ini \
&& echo $MAIN_PREFIX_NO_ROOT/etc/conf.d/memcached.ini >> files_to_add \
&& checkinstall -y --pkgname $PACKAGE_NAME-memcached --include files_to_add
RUN cd /$PHP_VERSION/ext \
&& wget https://github.com/phpredis/phpredis/archive/5.3.4.tar.gz \
&& tar xzf 5.3.4.tar.gz \
&& cd phpredis-5.3.4 \
&& $MAIN_PREFIX/bin/phpize \
&& ./configure --with-php-config=$MAIN_PREFIX/bin/php-config \
&& make
RUN cd /$PHP_VERSION/ext/phpredis-5.3.4 \
&& mkdir -p $MAIN_PREFIX_NO_ROOT/etc/conf.d \
&& echo extension=redis.so > $MAIN_PREFIX_NO_ROOT/etc/conf.d/redis.ini \
&& echo $MAIN_PREFIX_NO_ROOT/etc/conf.d/redis.ini >> files_to_add \
&& checkinstall -y --pkgname $PACKAGE_NAME-redis --include files_to_add