diff -r 000000000000 -r 800e4a6ab128 wp/Dockerfile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wp/Dockerfile Tue Apr 23 15:50:12 2019 +0200 @@ -0,0 +1,92 @@ +FROM php:7.3-fpm-alpine + +# docker-entrypoint.sh dependencies +RUN apk add --no-cache \ +# in theory, docker-entrypoint.sh is POSIX-compliant, but priority is a working, consistent image + bash \ +# BusyBox sed is not sufficient for some of our sed expressions + sed \ + less \ + mysql-client ; \ + apk add --no-cache --virtual .composer-rundeps git subversion openssh mercurial tini patch make zip unzip coreutils; + + +RUN set -ex; \ + \ + # install the PHP extensions we need + apk add --no-cache --virtual .build-deps \ + libjpeg-turbo-dev \ + libpng-dev \ + libzip-dev \ + zlib-dev; \ + docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr; \ + docker-php-ext-configure zip --with-libzip; \ + docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd mysqli opcache zip; \ + runDeps="$( \ + scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ + )"; \ + apk add --virtual .wordpress-phpexts-rundeps $runDeps; \ +# install composer dependencies + apk add --no-cache --virtual .composer-phpext-rundeps $runDeps; \ + printf "# composer php cli ini settings\n\ +date.timezone=UTC\n\ +memory_limit=-1\n\ +opcache.enable_cli=1\n\ +" > $PHP_INI_DIR/php-cli.ini ; \ +# clean + apk del .build-deps + +# install composer +ENV COMPOSER_ALLOW_SUPERUSER 1 +ENV COMPOSER_HOME /tmp +ENV COMPOSER_VERSION 1.8.5 + +RUN curl --silent --fail --location --retry 3 --output /tmp/installer.php --url https://raw.githubusercontent.com/composer/getcomposer.org/cb19f2aa3aeaa2006c0cd69a7ef011eb31463067/web/installer \ + && php -r " \ + \$signature = '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5'; \ + \$hash = hash('sha384', file_get_contents('/tmp/installer.php')); \ + if (!hash_equals(\$signature, \$hash)) { \ + unlink('/tmp/installer.php'); \ + echo 'Integrity check failed, installer is either corrupt or worse.' . PHP_EOL; \ + exit(1); \ + }" \ + && php /tmp/installer.php --no-ansi --install-dir=/usr/bin --filename=composer --version=${COMPOSER_VERSION} \ + && composer --ansi --version --no-interaction \ + && rm -f /tmp/installer.php + + + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=2'; \ + echo 'opcache.fast_shutdown=1'; \ + echo 'opcache.enable_cli=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini +# https://codex.wordpress.org/Editing_wp-config.php#Configure_Error_Logging +RUN { \ + echo 'error_reporting = 4339'; \ + echo 'display_errors = Off'; \ + echo 'display_startup_errors = Off'; \ + echo 'log_errors = On'; \ + echo 'error_log = /dev/stderr'; \ + echo 'log_errors_max_len = 1024'; \ + echo 'ignore_repeated_errors = On'; \ + echo 'ignore_repeated_source = Off'; \ + echo 'html_errors = Off'; \ + } > /usr/local/etc/php/conf.d/error-logging.ini + +VOLUME /var/www/html + +COPY ./docker-entrypoint.sh /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-entrypoint.sh + +ENTRYPOINT ["docker-entrypoint.sh"] +CMD ["php-fpm"] +