Sign inSign up

italoc/php7.1.3-libreoffice

By italoc

•Updated over 9 years ago

Image
0

221

italoc/php7.1.3-libreoffice repository overview

⁠NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"

⁠

⁠PLEASE DO NOT EDIT IT DIRECTLY.

⁠

FROM debian:jessie

⁠persistent / runtime deps

ENV PHPIZE_DEPS
autoconf
file
g++
gcc
libc-dev
make
pkg-config
re2c RUN apt-get update && apt-get install -y
$PHPIZE_DEPS
ca-certificates
curl
libedit2
libsqlite3-0
libxml2
xz-utils
default-jre-headless
locales-all
vim
libreoffice
openssl
--no-install-recommends && rm -r /var/lib/apt/lists/*

ENV PHP_INI_DIR /usr/local/etc/php RUN mkdir -p $PHP_INI_DIR/conf.d

#### RUN apt-get update && apt-get install -y apache2-bin apache2.2-common --no-install-recommends && rm -rf /var/lib/apt/lists/*

ENV APACHE_CONFDIR /etc/apache2 ENV APACHE_ENVVARS $APACHE_CONFDIR/envvars

RUN set -ex
\

⁠generically convert lines like

⁠export APACHE_RUN_USER=www-data

⁠into

⁠: ${APACHE_RUN_USER:=www-data}

⁠export APACHE_RUN_USER

⁠so that they can be overridden at runtime ("-e APACHE_RUN_USER=...")

&& sed -ri 's/^export ([^=]+)=(.*)$/: ${\1:=\2}\nexport \1/' "$APACHE_ENVVARS" \
\

⁠setup directories and permissions

&& . "$APACHE_ENVVARS" \
&& for dir in \
	"$APACHE_LOCK_DIR" \
	"$APACHE_RUN_DIR" \
	"$APACHE_LOG_DIR" \
	/var/www/html \
; do \
	rm -rvf "$dir" \
	&& mkdir -p "$dir" \
	&& chown -R "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$dir"; \
done

⁠Apache + PHP requires preforking Apache for best results

RUN a2dismod mpm_event && a2enmod mpm_prefork

⁠logs should go to stdout / stderr

RUN set -ex
&& . "$APACHE_ENVVARS"
&& ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log"
&& ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log"
&& ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log"

⁠PHP files should be handled by PHP, and should be preferred over any other file type

RUN {
echo '<FilesMatch .php$>';
echo '\tSetHandler application/x-httpd-php';
echo '';
echo;
echo 'DirectoryIndex disabled';
echo 'DirectoryIndex index.php index.html';
echo;
echo '<Directory /var/www/>';
echo '\tOptions -Indexes';
echo '\tAllowOverride All';
echo '';
} | tee "$APACHE_CONFDIR/conf-available/docker-php.conf"
&& a2enconf docker-php

ENV PHP_EXTRA_BUILD_DEPS apache2-dev ENV PHP_EXTRA_CONFIGURE_ARGS --with-apxs2 ####

⁠Apply stack smash protection to functions using local buffers and alloca()

⁠Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64)

⁠Enable optimization (-O2)

⁠Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default)

⁠Adds GNU HASH segments to generated executables (this is used if present, and is much faster than sysv hash; in this configuration, sysv hash is also generated)

⁠https://github.com/docker-library/php/issues/272⁠

ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2" ENV PHP_CPPFLAGS="$PHP_CFLAGS" ENV PHP_LDFLAGS="-Wl,-O1 -Wl,--hash-style=both -pie"

ENV GPG_KEYS A917B1ECDA84AEC2B568FED6F50ABC807BD5DCD0 528995BFEDFBA7191D46839EF9BA0ADA31CBD89E

ENV PHP_VERSION 7.1.3 ENV PHP_URL="https://secure.php.net/get/php-7.1.3.tar.xz/from/this/mirror⁠" PHP_ASC_URL="https://secure.php.net/get/php-7.1.3.tar.xz.asc/from/this/mirror⁠" ENV PHP_SHA256="e4887c2634778e37fd962fbdf5c4a7d32cd708482fe07b448804625570cb0bb0" PHP_MD5="d604d688be17f4a05b99dbb7fb9581f4"

RUN set -xe;

fetchDeps='
wget
';
apt-get update;
apt-get install -y --no-install-recommends $fetchDeps;
rm -rf /var/lib/apt/lists/*;

mkdir -p /usr/src;
cd /usr/src;

wget -O php.tar.xz "$PHP_URL";

if [ -n "$PHP_SHA256" ]; then
echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -;
fi;
if [ -n "$PHP_MD5" ]; then
echo "$PHP_MD5 *php.tar.xz" | md5sum -c -;
fi;

if [ -n "$PHP_ASC_URL" ]; then
wget -O php.tar.xz.asc "$PHP_ASC_URL";
export GNUPGHOME="$(mktemp -d)";
for key in $GPG_KEYS; do
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key";
done;
gpg --batch --verify php.tar.xz.asc php.tar.xz;
rm -r "$GNUPGHOME";
fi;

apt-get purge -y --auto-remove $fetchDeps

COPY docker-php-source /usr/local/bin/

RUN set -xe
&& buildDeps="
$PHP_EXTRA_BUILD_DEPS
libcurl4-openssl-dev
libedit-dev
libsqlite3-dev
libssl-dev
libxml2-dev
"
&& apt-get update && apt-get install -y $buildDeps --no-install-recommends && rm -rf /var/lib/apt/lists/*

&& export CFLAGS="$PHP_CFLAGS"
CPPFLAGS="$PHP_CPPFLAGS"
LDFLAGS="$PHP_LDFLAGS"
&& docker-php-source extract
&& cd /usr/src/php
&& ./configure
--with-config-file-path="$PHP_INI_DIR"
--with-config-file-scan-dir="$PHP_INI_DIR/conf.d"

--disable-cgi
\

⁠--enable-ftp is included here because ftp_ssl_connect() needs ftp to be compiled statically (see https://github.com/docker-library/php/issues/236⁠)

	--enable-ftp \

⁠--enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195⁠)

	--enable-mbstring \

⁠--enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself)

	--enable-mysqlnd \
	\
	--with-curl \
	--with-libedit \
	--with-openssl \
	--with-zlib \
	\
	$PHP_EXTRA_CONFIGURE_ARGS \
&& make -j "$(nproc)" \
&& make install \
&& { find /usr/local/bin /usr/local/sbin -type f -executable -exec strip --strip-all '{}' + || true; } \
&& make clean \
&& docker-php-source delete \
\
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $buildDeps

RUN a2enmod rewrite COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/

ENTRYPOINT ["docker-php-entrypoint"] #### COPY apache2-foreground /usr/local/bin/ WORKDIR /var/www/html

EXPOSE 80 EXPOSE 443 CMD ["apache2-foreground"] ####

Tag summary

Content type

Image

Digest

Size

451 MB

Last updated

over 9 years ago

docker pull italoc/php7.1.3-libreoffice