wp/Dockerfile
author ymh <ymh.work@gmail.com>
Sat, 06 Mar 2021 09:11:30 +0100
changeset 42 5bb33f78b519
parent 39 5a716b5cfe09
permissions -rw-r--r--
New partners list
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
39
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
     1
FROM php:7.3-fpm
0
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
# docker-entrypoint.sh dependencies
39
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
     4
RUN apt-get update && apt-get install -y \
0
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
		less \
39
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
     6
		default-mysql-client \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
     7
		git \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
     8
		subversion \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
     9
		openssh-client \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    10
		mercurial \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    11
		tini \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    12
		patch \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    13
		make \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    14
		zip \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    15
		unzip \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    16
		coreutils\
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    17
 && rm -rf /var/lib/apt/lists/*
0
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
39
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    20
RUN set -ex \
0
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
	\
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
	# install the PHP extensions we need
39
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    23
 && buildDeps='libjpeg-dev libpng-dev libzip-dev zlib1g-dev pax-utils libicu-dev' \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    24
 && apt-get update && apt-get install -y $buildDeps --no-install-recommends \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    25
 && rm -rf /var/lib/apt/lists/* \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    26
 && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    27
 && docker-php-ext-configure zip --with-libzip \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    28
 && docker-php-ext-configure intl \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    29
 && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd mysqli opcache zip intl \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    30
 && runDeps="libjpeg62-turbo libpng16-16 libzip4 libicu63" \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    31
 && apt-get install -y $runDeps --no-install-recommends \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    32
 && printf "# composer php cli ini settings\n\
0
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
date.timezone=UTC\n\
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
memory_limit=-1\n\
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
opcache.enable_cli=1\n\
39
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    36
" > $PHP_INI_DIR/php-cli.ini \
0
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
# clean
39
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    38
 && apt-get purge -y --auto-remove $buildDeps
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    39
0
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
39
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    41
#  && runDeps="$( \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    42
# 		scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    43
# 			| tr ',' '\n' \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    44
# 			| sort -u \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    45
# 			| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print $1 }' \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    46
# 			| xargs -n1 dpkg -S \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    47
# 			| cut -d: -f1 \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    48
# 			| sort -u \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    49
# 	)" \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    50
#  && apt-get install -y $runDeps --no-install-recommends \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    51
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    52
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    53
# # install composer
0
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
ENV COMPOSER_ALLOW_SUPERUSER 1
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
ENV COMPOSER_HOME /tmp
39
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    56
ENV COMPOSER_VERSION 2.0.11
0
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
39
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    58
RUN EXPECTED_CHECKSUM="$(curl --silent https://composer.github.io/installer.sig)" \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    59
  && curl --silent --fail --location --retry 3 --output /tmp/composer-setup.php --url https://getcomposer.org/installer \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    60
  && ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', '/tmp/composer-setup.php');")" \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    61
 && if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]; then \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    62
      >&2 echo 'ERROR: Invalid installer checksum'; \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    63
      rm /tmp/composer-setup.php; \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    64
      exit 1; \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    65
    fi \
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    66
 && php /tmp/composer-setup.php --quiet --no-ansi --install-dir=/usr/bin --filename=composer --version=${COMPOSER_VERSION} \
0
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
 && composer --ansi --version --no-interaction \
4
f0b7075b9496 Always launch composer install and add composer plugin prestissomo to speed up install
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    68
# install prestissimo composer parallel install plugin.
39
5a716b5cfe09 upgrade wordpress and dependencies
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    69
 && rm /tmp/composer-setup.php
0
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
# set recommended PHP.ini settings
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
# see https://secure.php.net/manual/en/opcache.installation.php
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
RUN { \
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
		echo 'opcache.memory_consumption=128'; \
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
		echo 'opcache.interned_strings_buffer=8'; \
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
		echo 'opcache.max_accelerated_files=4000'; \
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
		echo 'opcache.revalidate_freq=2'; \
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
		echo 'opcache.fast_shutdown=1'; \
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
		echo 'opcache.enable_cli=1'; \
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
	} > /usr/local/etc/php/conf.d/opcache-recommended.ini
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
# https://codex.wordpress.org/Editing_wp-config.php#Configure_Error_Logging
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
RUN { \
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
		echo 'error_reporting = 4339'; \
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
		echo 'display_errors = Off'; \
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
		echo 'display_startup_errors = Off'; \
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
		echo 'log_errors = On'; \
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
		echo 'error_log = /dev/stderr'; \
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
		echo 'log_errors_max_len = 1024'; \
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
		echo 'ignore_repeated_errors = On'; \
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
		echo 'ignore_repeated_source = Off'; \
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
		echo 'html_errors = Off'; \
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
	} > /usr/local/etc/php/conf.d/error-logging.ini
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
VOLUME /var/www/html
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
COPY ./docker-entrypoint.sh /usr/local/bin/
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
ENTRYPOINT ["docker-entrypoint.sh"]
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
CMD ["php-fpm"]
800e4a6ab128 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101