0
0
Fork 0
mirror of https://github.com/nextcloud/docker.git synced 2025-07-21 14:48:05 +02:00

Compare commits

...

5 commits

Author SHA1 Message Date
Thomas Clavier
5311bee3a0
Merge f5f23fcebf into a5656577ef 2025-02-11 19:20:52 +02:00
J0WI
a5656577ef
Compile with igbinary (#2368)
Signed-off-by: J0WI <J0WI@users.noreply.github.com>
2025-02-11 18:01:24 +01:00
Thomas Clavier
f5f23fcebf
use PHP_FPM_DIR and PHP_PM_MAX_CHILDREN vars
Signed-off-by: Thomas Clavier <tom@tcweb.org>
2023-10-26 13:36:20 +02:00
Thomas Clavier
6a301fb1d6
Revert "Configure pm.max_children from env var"
This reverts commit 4ce703efa64958f8e719575af899ba57c32f104b.

Signed-off-by: Thomas Clavier <tom@tcweb.org>
2023-10-26 13:36:20 +02:00
Thomas Clavier
1bf2e95f05
Configure pm.max_children from env var
Signed-off-by: Thomas Clavier <tom@tcweb.org>
2023-10-26 13:36:20 +02:00
9 changed files with 112 additions and 29 deletions

View file

@ -67,12 +67,16 @@ RUN set -ex; \
\ \
# pecl will claim success even if one install fails, so we need to perform each install separately # pecl will claim success even if one install fails, so we need to perform each install separately
pecl install APCu-5.1.24; \ pecl install APCu-5.1.24; \
pecl install igbinary-3.2.16; \
pecl install imagick-3.7.0; \ pecl install imagick-3.7.0; \
pecl install memcached-3.3.0; \ pecl install memcached-3.3.0 \
pecl install redis-6.1.0; \ --configureoptions 'enable-memcached-igbinary="yes"'; \
pecl install redis-6.1.0 \
--configureoptions 'enable-redis-igbinary="yes" enable-redis-zstd="yes" enable-redis-lz4="yes"'; \
\ \
docker-php-ext-enable \ docker-php-ext-enable \
apcu \ apcu \
igbinary \
imagick \ imagick \
memcached \ memcached \
redis \ redis \
@ -108,6 +112,11 @@ RUN { \
\ \
echo 'apc.enable_cli=1' >> "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"; \ echo 'apc.enable_cli=1' >> "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"; \
\ \
{ \
echo 'apc.serializer=igbinary'; \
echo 'session.serialize_handler=igbinary'; \
} >> "${PHP_INI_DIR}/conf.d/docker-php-ext-igbinary.ini"; \
\
{ \ { \
echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \ echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \
echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \ echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \

View file

@ -64,12 +64,16 @@ RUN set -ex; \
\ \
# pecl will claim success even if one install fails, so we need to perform each install separately # pecl will claim success even if one install fails, so we need to perform each install separately
pecl install APCu-5.1.24; \ pecl install APCu-5.1.24; \
pecl install igbinary-3.2.16; \
pecl install imagick-3.7.0; \ pecl install imagick-3.7.0; \
pecl install memcached-3.3.0; \ pecl install memcached-3.3.0 \
pecl install redis-6.1.0; \ --configureoptions 'enable-memcached-igbinary="yes"'; \
pecl install redis-6.1.0 \
--configureoptions 'enable-redis-igbinary="yes" enable-redis-zstd="yes" enable-redis-lz4="yes"'; \
\ \
docker-php-ext-enable \ docker-php-ext-enable \
apcu \ apcu \
igbinary \
imagick \ imagick \
memcached \ memcached \
redis \ redis \
@ -103,6 +107,11 @@ RUN { \
\ \
echo 'apc.enable_cli=1' >> "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"; \ echo 'apc.enable_cli=1' >> "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"; \
\ \
{ \
echo 'apc.serializer=igbinary'; \
echo 'session.serialize_handler=igbinary'; \
} >> "${PHP_INI_DIR}/conf.d/docker-php-ext-igbinary.ini"; \
\
{ \ { \
echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \ echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \
echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \ echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \

View file

@ -67,12 +67,16 @@ RUN set -ex; \
\ \
# pecl will claim success even if one install fails, so we need to perform each install separately # pecl will claim success even if one install fails, so we need to perform each install separately
pecl install APCu-5.1.24; \ pecl install APCu-5.1.24; \
pecl install igbinary-3.2.16; \
pecl install imagick-3.7.0; \ pecl install imagick-3.7.0; \
pecl install memcached-3.3.0; \ pecl install memcached-3.3.0 \
pecl install redis-6.1.0; \ --configureoptions 'enable-memcached-igbinary="yes"'; \
pecl install redis-6.1.0 \
--configureoptions 'enable-redis-igbinary="yes" enable-redis-zstd="yes" enable-redis-lz4="yes"'; \
\ \
docker-php-ext-enable \ docker-php-ext-enable \
apcu \ apcu \
igbinary \
imagick \ imagick \
memcached \ memcached \
redis \ redis \
@ -108,6 +112,11 @@ RUN { \
\ \
echo 'apc.enable_cli=1' >> "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"; \ echo 'apc.enable_cli=1' >> "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"; \
\ \
{ \
echo 'apc.serializer=igbinary'; \
echo 'session.serialize_handler=igbinary'; \
} >> "${PHP_INI_DIR}/conf.d/docker-php-ext-igbinary.ini"; \
\
{ \ { \
echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \ echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \
echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \ echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \

View file

@ -67,12 +67,16 @@ RUN set -ex; \
\ \
# pecl will claim success even if one install fails, so we need to perform each install separately # pecl will claim success even if one install fails, so we need to perform each install separately
pecl install APCu-5.1.24; \ pecl install APCu-5.1.24; \
pecl install igbinary-3.2.16; \
pecl install imagick-3.7.0; \ pecl install imagick-3.7.0; \
pecl install memcached-3.3.0; \ pecl install memcached-3.3.0 \
pecl install redis-6.1.0; \ --configureoptions 'enable-memcached-igbinary="yes"'; \
pecl install redis-6.1.0 \
--configureoptions 'enable-redis-igbinary="yes" enable-redis-zstd="yes" enable-redis-lz4="yes"'; \
\ \
docker-php-ext-enable \ docker-php-ext-enable \
apcu \ apcu \
igbinary \
imagick \ imagick \
memcached \ memcached \
redis \ redis \
@ -108,6 +112,11 @@ RUN { \
\ \
echo 'apc.enable_cli=1' >> "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"; \ echo 'apc.enable_cli=1' >> "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"; \
\ \
{ \
echo 'apc.serializer=igbinary'; \
echo 'session.serialize_handler=igbinary'; \
} >> "${PHP_INI_DIR}/conf.d/docker-php-ext-igbinary.ini"; \
\
{ \ { \
echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \ echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \
echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \ echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \

View file

@ -64,12 +64,16 @@ RUN set -ex; \
\ \
# pecl will claim success even if one install fails, so we need to perform each install separately # pecl will claim success even if one install fails, so we need to perform each install separately
pecl install APCu-5.1.24; \ pecl install APCu-5.1.24; \
pecl install igbinary-3.2.16; \
pecl install imagick-3.7.0; \ pecl install imagick-3.7.0; \
pecl install memcached-3.3.0; \ pecl install memcached-3.3.0 \
pecl install redis-6.1.0; \ --configureoptions 'enable-memcached-igbinary="yes"'; \
pecl install redis-6.1.0 \
--configureoptions 'enable-redis-igbinary="yes" enable-redis-zstd="yes" enable-redis-lz4="yes"'; \
\ \
docker-php-ext-enable \ docker-php-ext-enable \
apcu \ apcu \
igbinary \
imagick \ imagick \
memcached \ memcached \
redis \ redis \
@ -103,6 +107,11 @@ RUN { \
\ \
echo 'apc.enable_cli=1' >> "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"; \ echo 'apc.enable_cli=1' >> "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"; \
\ \
{ \
echo 'apc.serializer=igbinary'; \
echo 'session.serialize_handler=igbinary'; \
} >> "${PHP_INI_DIR}/conf.d/docker-php-ext-igbinary.ini"; \
\
{ \ { \
echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \ echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \
echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \ echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \

View file

@ -67,12 +67,16 @@ RUN set -ex; \
\ \
# pecl will claim success even if one install fails, so we need to perform each install separately # pecl will claim success even if one install fails, so we need to perform each install separately
pecl install APCu-5.1.24; \ pecl install APCu-5.1.24; \
pecl install igbinary-3.2.16; \
pecl install imagick-3.7.0; \ pecl install imagick-3.7.0; \
pecl install memcached-3.3.0; \ pecl install memcached-3.3.0 \
pecl install redis-6.1.0; \ --configureoptions 'enable-memcached-igbinary="yes"'; \
pecl install redis-6.1.0 \
--configureoptions 'enable-redis-igbinary="yes" enable-redis-zstd="yes" enable-redis-lz4="yes"'; \
\ \
docker-php-ext-enable \ docker-php-ext-enable \
apcu \ apcu \
igbinary \
imagick \ imagick \
memcached \ memcached \
redis \ redis \
@ -108,6 +112,11 @@ RUN { \
\ \
echo 'apc.enable_cli=1' >> "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"; \ echo 'apc.enable_cli=1' >> "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"; \
\ \
{ \
echo 'apc.serializer=igbinary'; \
echo 'session.serialize_handler=igbinary'; \
} >> "${PHP_INI_DIR}/conf.d/docker-php-ext-igbinary.ini"; \
\
{ \ { \
echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \ echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \
echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \ echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \

View file

@ -63,12 +63,16 @@ RUN set -ex; \
\ \
# pecl will claim success even if one install fails, so we need to perform each install separately # pecl will claim success even if one install fails, so we need to perform each install separately
pecl install APCu-%%APCU_VERSION%%; \ pecl install APCu-%%APCU_VERSION%%; \
pecl install igbinary-%%IGBINARY_VERSION%%; \
pecl install imagick-%%IMAGICK_VERSION%%; \ pecl install imagick-%%IMAGICK_VERSION%%; \
pecl install memcached-%%MEMCACHED_VERSION%%; \ pecl install memcached-%%MEMCACHED_VERSION%% \
pecl install redis-%%REDIS_VERSION%%; \ --configureoptions 'enable-memcached-igbinary="yes"'; \
pecl install redis-%%REDIS_VERSION%% \
--configureoptions 'enable-redis-igbinary="yes" enable-redis-zstd="yes" enable-redis-lz4="yes"'; \
\ \
docker-php-ext-enable \ docker-php-ext-enable \
apcu \ apcu \
igbinary \
imagick \ imagick \
memcached \ memcached \
redis \ redis \
@ -102,6 +106,11 @@ RUN { \
\ \
echo 'apc.enable_cli=1' >> "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"; \ echo 'apc.enable_cli=1' >> "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"; \
\ \
{ \
echo 'apc.serializer=igbinary'; \
echo 'session.serialize_handler=igbinary'; \
} >> "${PHP_INI_DIR}/conf.d/docker-php-ext-igbinary.ini"; \
\
{ \ { \
echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \ echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \
echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \ echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \

View file

@ -66,12 +66,16 @@ RUN set -ex; \
\ \
# pecl will claim success even if one install fails, so we need to perform each install separately # pecl will claim success even if one install fails, so we need to perform each install separately
pecl install APCu-%%APCU_VERSION%%; \ pecl install APCu-%%APCU_VERSION%%; \
pecl install igbinary-%%IGBINARY_VERSION%%; \
pecl install imagick-%%IMAGICK_VERSION%%; \ pecl install imagick-%%IMAGICK_VERSION%%; \
pecl install memcached-%%MEMCACHED_VERSION%%; \ pecl install memcached-%%MEMCACHED_VERSION%% \
pecl install redis-%%REDIS_VERSION%%; \ --configureoptions 'enable-memcached-igbinary="yes"'; \
pecl install redis-%%REDIS_VERSION%% \
--configureoptions 'enable-redis-igbinary="yes" enable-redis-zstd="yes" enable-redis-lz4="yes"'; \
\ \
docker-php-ext-enable \ docker-php-ext-enable \
apcu \ apcu \
igbinary \
imagick \ imagick \
memcached \ memcached \
redis \ redis \
@ -107,6 +111,11 @@ RUN { \
\ \
echo 'apc.enable_cli=1' >> "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"; \ echo 'apc.enable_cli=1' >> "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"; \
\ \
{ \
echo 'apc.serializer=igbinary'; \
echo 'session.serialize_handler=igbinary'; \
} >> "${PHP_INI_DIR}/conf.d/docker-php-ext-igbinary.ini"; \
\
{ \ { \
echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \ echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \
echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \ echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \

View file

@ -27,8 +27,8 @@ declare -A base=(
declare -A extras=( declare -A extras=(
[apache]='\nRUN a2enmod headers rewrite remoteip ; \\\n { \\\n echo '\''RemoteIPHeader X-Real-IP'\''; \\\n echo '\''RemoteIPInternalProxy 10.0.0.0/8'\''; \\\n echo '\''RemoteIPInternalProxy 172.16.0.0/12'\''; \\\n echo '\''RemoteIPInternalProxy 192.168.0.0/16'\''; \\\n } > /etc/apache2/conf-available/remoteip.conf; \\\n a2enconf remoteip\n\n# set apache config LimitRequestBody\nENV APACHE_BODY_LIMIT 1073741824\nRUN { \\\n echo '\''LimitRequestBody ${APACHE_BODY_LIMIT}'\''; \\\n } > /etc/apache2/conf-available/apache-limits.conf; \\\n a2enconf apache-limits' [apache]='\nRUN a2enmod headers rewrite remoteip ; \\\n { \\\n echo '\''RemoteIPHeader X-Real-IP'\''; \\\n echo '\''RemoteIPInternalProxy 10.0.0.0/8'\''; \\\n echo '\''RemoteIPInternalProxy 172.16.0.0/12'\''; \\\n echo '\''RemoteIPInternalProxy 192.168.0.0/16'\''; \\\n } > /etc/apache2/conf-available/remoteip.conf; \\\n a2enconf remoteip\n\n# set apache config LimitRequestBody\nENV APACHE_BODY_LIMIT 1073741824\nRUN { \\\n echo '\''LimitRequestBody ${APACHE_BODY_LIMIT}'\''; \\\n } > /etc/apache2/conf-available/apache-limits.conf; \\\n a2enconf apache-limits'
[fpm]='' [fpm]='\nENV PHP_PM_MAX_CHILDREN 16\nRUN {\\\n echo'\''pm = pm=dynamic'\''; \\\n echo'\''pm.start_servers = 4'\''; \\\n echo'\''pm.min_spare_servers = 2'\''; \\\n echo'\''pm.max_spare_servers = 24'\''; \\\n echo'\''pm.max_children = ${PHP_PM_MAX_CHILDREN}'\''; \\\n } > "${PHP_FPM_DIR}/nextcloud.conf";\n'
[fpm-alpine]='' [fpm-alpine]='\nENV PHP_PM_MAX_CHILDREN 16\nRUN {\\\n echo'\''pm = pm=dynamic'\''; \\\n echo'\''pm.start_servers = 4'\''; \\\n echo'\''pm.min_spare_servers = 2'\''; \\\n echo'\''pm.max_spare_servers = 24'\''; \\\n echo'\''pm.max_children = ${PHP_PM_MAX_CHILDREN}'\''; \\\n } > "${PHP_FPM_DIR}/nextcloud.conf";\n'
) )
declare -A crontab_int=( declare -A crontab_int=(
@ -44,6 +44,24 @@ apcu_version="$(
| tail -1 | tail -1
)" )"
igbinary_version="$(
git ls-remote --tags https://github.com/igbinary/igbinary.git \
| cut -d/ -f3 \
| grep -viE '[a-z]' \
| tr -d '^{}' \
| sort -V \
| tail -1
)"
imagick_version="$(
git ls-remote --tags https://github.com/mkoppanen/imagick.git \
| cut -d/ -f3 \
| grep -viE '[a-z]' \
| tr -d '^{}' \
| sort -V \
| tail -1
)"
memcached_version="$( memcached_version="$(
git ls-remote --tags https://github.com/php-memcached-dev/php-memcached.git \ git ls-remote --tags https://github.com/php-memcached-dev/php-memcached.git \
| cut -d/ -f3 \ | cut -d/ -f3 \
@ -62,20 +80,12 @@ redis_version="$(
| tail -1 | tail -1
)" )"
imagick_version="$(
git ls-remote --tags https://github.com/mkoppanen/imagick.git \
| cut -d/ -f3 \
| grep -viE '[a-z]' \
| tr -d '^{}' \
| sort -V \
| tail -1
)"
declare -A pecl_versions=( declare -A pecl_versions=(
[APCu]="$apcu_version" [APCu]="$apcu_version"
[igbinary]="$igbinary_version"
[imagick]="$imagick_version"
[memcached]="$memcached_version" [memcached]="$memcached_version"
[redis]="$redis_version" [redis]="$redis_version"
[imagick]="$imagick_version"
) )
variants=( variants=(
@ -121,9 +131,10 @@ function create_variant() {
s/%%CMD%%/'"${cmd[$variant]}"'/g; s/%%CMD%%/'"${cmd[$variant]}"'/g;
s|%%VARIANT_EXTRAS%%|'"${extras[$variant]}"'|g; s|%%VARIANT_EXTRAS%%|'"${extras[$variant]}"'|g;
s/%%APCU_VERSION%%/'"${pecl_versions[APCu]}"'/g; s/%%APCU_VERSION%%/'"${pecl_versions[APCu]}"'/g;
s/%%IGBINARY_VERSION%%/'"${pecl_versions[igbinary]}"'/g;
s/%%IMAGICK_VERSION%%/'"${pecl_versions[imagick]}"'/g;
s/%%MEMCACHED_VERSION%%/'"${pecl_versions[memcached]}"'/g; s/%%MEMCACHED_VERSION%%/'"${pecl_versions[memcached]}"'/g;
s/%%REDIS_VERSION%%/'"${pecl_versions[redis]}"'/g; s/%%REDIS_VERSION%%/'"${pecl_versions[redis]}"'/g;
s/%%IMAGICK_VERSION%%/'"${pecl_versions[imagick]}"'/g;
s/%%CRONTAB_INT%%/'"$crontabInt"'/g; s/%%CRONTAB_INT%%/'"$crontabInt"'/g;
' "$dir/Dockerfile" ' "$dir/Dockerfile"