dockerfiles/nginx-php/Dockerfile.7.2

181 lines
4.4 KiB
Docker

FROM alpine:3.10
ARG BUILD_CORES
ARG NGINX_VER=1.17.3
ARG PHP_VER=7.2.22
ARG LIBICONV_VERSION=1.16
LABEL description="nginx + php image based on Alpine" \
maintainer="hoellen info@hoellen.eu" \
php_version="PHP v$PHP_VER built from source" \
nginx_version="nginx v$NGINX_VER built from source"
ARG PHP_MIRROR=http://ch1.php.net
ARG NGINX_CONF=" \
--prefix=/nginx \
--sbin-path=/usr/local/sbin/nginx \
--http-log-path=/nginx/logs/access.log \
--error-log-path=/nginx/logs/error.log \
--pid-path=/nginx/run/nginx.pid \
--lock-path=/nginx/run/nginx.lock \
--with-threads \
--with-file-aio \
--without-http_geo_module \
--without-http_autoindex_module \
--without-http_split_clients_module \
--without-http_memcached_module \
--without-http_empty_gif_module \
--without-http_browser_module"
ARG PHP_CONF=" \
--prefix=/usr \
--libdir=/usr/lib/php \
--datadir=/usr/share/php \
--sysconfdir=/php/etc \
--localstatedir=/php/var \
--with-pear=/usr/share/php \
--with-config-file-scan-dir=/php/conf.d \
--with-config-file-path=/php \
--with-pic \
--disable-short-tags \
--without-readline \
--enable-bcmath=shared \
--enable-fpm \
--disable-cgi \
--enable-mysqlnd \
--enable-mbstring \
--with-curl \
--with-libedit \
--with-openssl \
--with-iconv=/usr/local \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-webp-dir \
--with-xpm-dir=no \
--with-freetype-dir \
--disable-gd-jis-conv \
--with-zlib"
ARG PHP_EXT_LIST=" \
mysqli \
ctype \
dom \
json \
xml \
mbstring \
posix \
xmlwriter \
zip \
zlib \
sqlite3 \
pdo_sqlite \
pdo_pgsql \
pdo_mysql \
pcntl \
curl \
fileinfo \
bz2 \
intl \
openssl \
ldap \
simplexml \
pgsql \
ftp \
exif \
gmp \
imap"
ARG CUSTOM_BUILD_PKGS=" \
freetype-dev \
openldap-dev \
gmp-dev \
icu-dev \
postgresql-dev \
libpng-dev \
libwebp-dev \
gd-dev \
libjpeg-turbo-dev \
libxpm-dev \
libedit-dev \
libxml2-dev \
openssl-dev \
libbz2 \
sqlite-dev \
imap-dev"
ARG CUSTOM_PKGS=" \
freetype \
openldap \
gmp \
bzip2-dev \
icu \
libpq \
c-client"
COPY rootfs /
RUN NB_CORES=${BUILD_CORES-$(getconf _NPROCESSORS_CONF)} \
&& BUILD_DEPS=" \
linux-headers \
libtool \
build-base \
pcre-dev \
zlib-dev \
wget \
gnupg \
autoconf \
gcc \
g++ \
libc-dev \
make \
pkgconf \
curl-dev \
ca-certificates \
${CUSTOM_BUILD_PKGS}" \
&& apk -U add \
${BUILD_DEPS} \
s6 \
su-exec \
curl \
libedit \
libxml2 \
openssl \
libwebp \
gd \
pcre \
zlib \
${CUSTOM_PKGS} \
&& wget http://nginx.org/download/nginx-${NGINX_VER}.tar.gz -O /tmp/nginx-${NGINX_VER}.tar.gz \
&& wget http://nginx.org/download/nginx-${NGINX_VER}.tar.gz.asc -O /tmp/nginx-${NGINX_VER}.tar.gz.asc \
&& wget ${PHP_MIRROR}/get/php-${PHP_VER}.tar.gz/from/this/mirror -O /tmp/php-${PHP_VER}.tar.gz \
&& wget ${PHP_MIRROR}/get/php-${PHP_VER}.tar.gz.asc/from/this/mirror -O /tmp/php-${PHP_VER}.tar.gz.asc \
&& wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-${LIBICONV_VERSION}.tar.gz -O /tmp/libiconv-${LIBICONV_VERSION}.tar.gz \
&& mkdir -p /php/conf.d \
&& mkdir -p /usr/src \
&& tar xzf /tmp/nginx-${NGINX_VER}.tar.gz -C /usr/src \
&& tar xzvf /tmp/php-${PHP_VER}.tar.gz -C /usr/src \
&& tar xzf /tmp/libiconv-${LIBICONV_VERSION}.tar.gz -C /usr/src \
&& cd /usr/src/nginx-${NGINX_VER} \
&& ./configure --with-cc-opt="-O3 -fPIE -fstack-protector-strong" ${NGINX_CONF} \
&& make -j ${NB_CORES} \
&& make install \
&& cd /usr/src/libiconv-${LIBICONV_VERSION} \
&& ./configure --prefix=/usr/local \
&& make && make install && libtool --finish /usr/local/lib \
&& mv /usr/src/php-${PHP_VER} /usr/src/php \
&& cd /usr/src/php \
&& ./configure CFLAGS="-O3 -fstack-protector-strong" ${PHP_CONF} \
&& make -j ${NB_CORES} \
&& make install \
&& { find /usr/local/bin /usr/local/sbin -type f -perm +0111 -exec strip --strip-all '{}' + || true; } \
&& make clean \
&& chmod u+x /usr/local/bin/* /etc/s6.d/*/* \
&& sleep 1 \
&& docker-php-ext-install ${PHP_EXT_LIST} \
&& apk del ${BUILD_DEPS} \
&& rm -rf /tmp/* /var/cache/apk/* /usr/src/* \
&& mkdir -p /nginx/logs /nginx/run /php/php-fpm.d /php/logs /php/run /php/session