|
| 1 | +FROM php:%%PHP_VERSION%%-alpine |
| 2 | + |
| 3 | +# install the PHP extensions we need |
| 4 | +RUN set -ex; \ |
| 5 | + \ |
| 6 | + apk add --no-cache --virtual .build-deps \ |
| 7 | + libjpeg-turbo-dev \ |
| 8 | + libpng-dev \ |
| 9 | + ; \ |
| 10 | + \ |
| 11 | + docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr; \ |
| 12 | + docker-php-ext-install gd mysqli opcache; \ |
| 13 | + \ |
| 14 | + runDeps="$( \ |
| 15 | + scanelf --needed --nobanner --recursive \ |
| 16 | + /usr/local/lib/php/extensions \ |
| 17 | + | awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' \ |
| 18 | + | sort -u \ |
| 19 | + | xargs -r apk info --installed \ |
| 20 | + | sort -u \ |
| 21 | + )"; \ |
| 22 | + apk add --virtual .wordpress-phpexts-rundeps $runDeps; \ |
| 23 | + apk del .build-deps |
| 24 | + |
| 25 | +# set recommended PHP.ini settings |
| 26 | +# see https://secure.php.net/manual/en/opcache.installation.php |
| 27 | +RUN { \ |
| 28 | + echo 'opcache.memory_consumption=128'; \ |
| 29 | + echo 'opcache.interned_strings_buffer=8'; \ |
| 30 | + echo 'opcache.max_accelerated_files=4000'; \ |
| 31 | + echo 'opcache.revalidate_freq=2'; \ |
| 32 | + echo 'opcache.fast_shutdown=1'; \ |
| 33 | + echo 'opcache.enable_cli=1'; \ |
| 34 | + } > /usr/local/etc/php/conf.d/opcache-recommended.ini |
| 35 | + |
| 36 | +# install wp-cli dependencies |
| 37 | +RUN apk add --no-cache \ |
| 38 | + less \ |
| 39 | + mysql-client |
| 40 | + |
| 41 | +RUN set -ex; \ |
| 42 | + mkdir -p /var/www/html; \ |
| 43 | + chown -R www-data:www-data /var/www/html |
| 44 | +WORKDIR /var/www/html |
| 45 | +VOLUME /var/www/html |
| 46 | + |
| 47 | +# pub 2048R/2F6B6B7F 2016-01-07 |
| 48 | +# Key fingerprint = 3B91 9162 5F3B 1F1B F5DD 3B47 673A 0204 2F6B 6B7F |
| 49 | +# uid Daniel Bachhuber <daniel@handbuilt.co> |
| 50 | +# sub 2048R/45F9CDE2 2016-01-07 |
| 51 | +ENV WORDPRESS_CLI_GPG_KEY 3B9191625F3B1F1BF5DD3B47673A02042F6B6B7F |
| 52 | + |
| 53 | +ENV WORDPRESS_CLI_VERSION %%WORDPRESS_CLI_VERSION%% |
| 54 | +ENV WORDPRESS_CLI_SHA512 %%WORDPRESS_CLI_SHA512%% |
| 55 | + |
| 56 | +RUN set -ex; \ |
| 57 | + \ |
| 58 | + apk add --no-cache --virtual .fetch-deps \ |
| 59 | + gnupg \ |
| 60 | + ; \ |
| 61 | + \ |
| 62 | + curl -o /usr/local/bin/wp.gpg -fSL "https://github.com/wp-cli/wp-cli/releases/download/v${WORDPRESS_CLI_VERSION}/wp-cli-${WORDPRESS_CLI_VERSION}.phar.gpg"; \ |
| 63 | + \ |
| 64 | + export GNUPGHOME="$(mktemp -d)"; \ |
| 65 | + gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$WORDPRESS_CLI_GPG_KEY"; \ |
| 66 | + gpg --batch --decrypt --output /usr/local/bin/wp /usr/local/bin/wp.gpg; \ |
| 67 | + rm -r "$GNUPGHOME" /usr/local/bin/wp.gpg; \ |
| 68 | + \ |
| 69 | + echo "$WORDPRESS_CLI_SHA512 */usr/local/bin/wp" | sha512sum -c -; \ |
| 70 | + chmod +x /usr/local/bin/wp; \ |
| 71 | + \ |
| 72 | + apk del .fetch-deps; \ |
| 73 | + \ |
| 74 | + wp --allow-root --version |
| 75 | + |
| 76 | +COPY docker-entrypoint.sh /usr/local/bin/ |
| 77 | + |
| 78 | +ENTRYPOINT ["docker-entrypoint.sh"] |
| 79 | +USER www-data |
| 80 | +CMD ["wp", "shell"] |
0 commit comments