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