diff --git a/28/apache/Dockerfile b/28/apache/Dockerfile index a9e4f152..d63fb3a8 100644 --- a/28/apache/Dockerfile +++ b/28/apache/Dockerfile @@ -67,7 +67,7 @@ RUN set -ex; \ # 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 imagick-3.7.0; \ - pecl install memcached-3.2.0; \ + pecl install memcached-3.3.0; \ pecl install redis-6.1.0; \ \ docker-php-ext-enable \ diff --git a/28/fpm-alpine/Dockerfile b/28/fpm-alpine/Dockerfile index 5d0f0eb5..a7352299 100644 --- a/28/fpm-alpine/Dockerfile +++ b/28/fpm-alpine/Dockerfile @@ -65,7 +65,7 @@ RUN set -ex; \ # 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 imagick-3.7.0; \ - pecl install memcached-3.2.0; \ + pecl install memcached-3.3.0; \ pecl install redis-6.1.0; \ \ docker-php-ext-enable \ diff --git a/28/fpm/Dockerfile b/28/fpm/Dockerfile index b4531eee..ae69769d 100644 --- a/28/fpm/Dockerfile +++ b/28/fpm/Dockerfile @@ -67,7 +67,7 @@ RUN set -ex; \ # 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 imagick-3.7.0; \ - pecl install memcached-3.2.0; \ + pecl install memcached-3.3.0; \ pecl install redis-6.1.0; \ \ docker-php-ext-enable \ diff --git a/29/apache/Dockerfile b/29/apache/Dockerfile index 874348e8..8e9316c9 100644 --- a/29/apache/Dockerfile +++ b/29/apache/Dockerfile @@ -67,7 +67,7 @@ RUN set -ex; \ # 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 imagick-3.7.0; \ - pecl install memcached-3.2.0; \ + pecl install memcached-3.3.0; \ pecl install redis-6.1.0; \ \ docker-php-ext-enable \ diff --git a/29/fpm-alpine/Dockerfile b/29/fpm-alpine/Dockerfile index bd0828e3..5344aed5 100644 --- a/29/fpm-alpine/Dockerfile +++ b/29/fpm-alpine/Dockerfile @@ -65,7 +65,7 @@ RUN set -ex; \ # 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 imagick-3.7.0; \ - pecl install memcached-3.2.0; \ + pecl install memcached-3.3.0; \ pecl install redis-6.1.0; \ \ docker-php-ext-enable \ diff --git a/29/fpm/Dockerfile b/29/fpm/Dockerfile index 1b216522..a69317bb 100644 --- a/29/fpm/Dockerfile +++ b/29/fpm/Dockerfile @@ -67,7 +67,7 @@ RUN set -ex; \ # 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 imagick-3.7.0; \ - pecl install memcached-3.2.0; \ + pecl install memcached-3.3.0; \ pecl install redis-6.1.0; \ \ docker-php-ext-enable \ diff --git a/30/apache/Dockerfile b/30/apache/Dockerfile index abcd9e7c..b01d9611 100644 --- a/30/apache/Dockerfile +++ b/30/apache/Dockerfile @@ -67,7 +67,7 @@ RUN set -ex; \ # 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 imagick-3.7.0; \ - pecl install memcached-3.2.0; \ + pecl install memcached-3.3.0; \ pecl install redis-6.1.0; \ \ docker-php-ext-enable \ @@ -140,7 +140,7 @@ RUN { \ } > /etc/apache2/conf-available/apache-limits.conf; \ a2enconf apache-limits -ENV NEXTCLOUD_VERSION 30.0.0 +ENV NEXTCLOUD_VERSION 30.0.1 RUN set -ex; \ fetchDeps=" \ @@ -150,8 +150,8 @@ RUN set -ex; \ apt-get update; \ apt-get install -y --no-install-recommends $fetchDeps; \ \ - curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-30.0.0.tar.bz2"; \ - curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-30.0.0.tar.bz2.asc"; \ + curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-30.0.1.tar.bz2"; \ + curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-30.0.1.tar.bz2.asc"; \ export GNUPGHOME="$(mktemp -d)"; \ # gpg key from https://nextcloud.com/nextcloud.asc gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A; \ diff --git a/30/fpm-alpine/Dockerfile b/30/fpm-alpine/Dockerfile index 9a553d78..a6197cc8 100644 --- a/30/fpm-alpine/Dockerfile +++ b/30/fpm-alpine/Dockerfile @@ -65,7 +65,7 @@ RUN set -ex; \ # 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 imagick-3.7.0; \ - pecl install memcached-3.2.0; \ + pecl install memcached-3.3.0; \ pecl install redis-6.1.0; \ \ docker-php-ext-enable \ @@ -120,7 +120,7 @@ RUN { \ VOLUME /var/www/html -ENV NEXTCLOUD_VERSION 30.0.0 +ENV NEXTCLOUD_VERSION 30.0.1 RUN set -ex; \ apk add --no-cache --virtual .fetch-deps \ @@ -128,8 +128,8 @@ RUN set -ex; \ gnupg \ ; \ \ - curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-30.0.0.tar.bz2"; \ - curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-30.0.0.tar.bz2.asc"; \ + curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-30.0.1.tar.bz2"; \ + curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-30.0.1.tar.bz2.asc"; \ export GNUPGHOME="$(mktemp -d)"; \ # gpg key from https://nextcloud.com/nextcloud.asc gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A; \ diff --git a/30/fpm/Dockerfile b/30/fpm/Dockerfile index 2877c10e..9ab2e055 100644 --- a/30/fpm/Dockerfile +++ b/30/fpm/Dockerfile @@ -67,7 +67,7 @@ RUN set -ex; \ # 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 imagick-3.7.0; \ - pecl install memcached-3.2.0; \ + pecl install memcached-3.3.0; \ pecl install redis-6.1.0; \ \ docker-php-ext-enable \ @@ -125,7 +125,7 @@ RUN { \ VOLUME /var/www/html -ENV NEXTCLOUD_VERSION 30.0.0 +ENV NEXTCLOUD_VERSION 30.0.1 RUN set -ex; \ fetchDeps=" \ @@ -135,8 +135,8 @@ RUN set -ex; \ apt-get update; \ apt-get install -y --no-install-recommends $fetchDeps; \ \ - curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-30.0.0.tar.bz2"; \ - curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-30.0.0.tar.bz2.asc"; \ + curl -fsSL -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/nextcloud-30.0.1.tar.bz2"; \ + curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/nextcloud-30.0.1.tar.bz2.asc"; \ export GNUPGHOME="$(mktemp -d)"; \ # gpg key from https://nextcloud.com/nextcloud.asc gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A; \ diff --git a/Dockerfile-alpine.template b/Dockerfile-alpine.template index de69eef2..17603375 100644 --- a/Dockerfile-alpine.template +++ b/Dockerfile-alpine.template @@ -88,15 +88,22 @@ RUN set -ex; \ # see https://docs.nextcloud.com/server/latest/admin_manual/installation/server_tuning.html#enable-php-opcache ENV PHP_MEMORY_LIMIT 512M ENV PHP_UPLOAD_LIMIT 512M +ENV PHP_OPCACHE_INTERNED_STRINGS_BUFFER 32 +ENV PHP_OPCACHE_MAX_ACCELERATED_FILES 10000 +ENV PHP_OPCACHE_MEMORY_CONSUMPTION 128 +ENV PHP_OPCACHE_SAVE_COMMENTS 1 +ENV PHP_OPCACHE_REVALIDATE_FREQ 60 +ENV PHP_OPCACHE_JIT 1255 +ENV PHP_OPCACHE_JIT_BUFFER_SIZE 128M RUN { \ echo 'opcache.enable=1'; \ - echo 'opcache.interned_strings_buffer=32'; \ - echo 'opcache.max_accelerated_files=10000'; \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.save_comments=1'; \ - echo 'opcache.revalidate_freq=60'; \ - echo 'opcache.jit=1255'; \ - echo 'opcache.jit_buffer_size=128M'; \ + echo 'opcache.interned_strings_buffer=${PHP_OPCACHE_INTERNED_STRINGS_BUFFER}'; \ + echo 'opcache.max_accelerated_files=${PHP_OPCACHE_MAX_ACCELERATED_FILES}'; \ + echo 'opcache.memory_consumption=${PHP_OPCACHE_MEMORY_CONSUMPTION}'; \ + echo 'opcache.save_comments=${PHP_OPCACHE_SAVE_COMMENTS}'; \ + echo 'opcache.revalidate_freq=${PHP_OPCACHE_REVALIDATE_FREQ}'; \ + echo 'opcache.jit=${PHP_OPCACHE_JIT}'; \ + echo 'opcache.jit_buffer_size=${PHP_OPCACHE_JIT_BUFFER_SIZE}'; \ } > "${PHP_INI_DIR}/conf.d/opcache-recommended.ini"; \ \ echo 'apc.enable_cli=1' >> "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"; \ diff --git a/Dockerfile-debian.template b/Dockerfile-debian.template index 8b66dd34..2e25fd2c 100644 --- a/Dockerfile-debian.template +++ b/Dockerfile-debian.template @@ -20,6 +20,13 @@ RUN set -ex; \ # see https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html ENV PHP_MEMORY_LIMIT 512M ENV PHP_UPLOAD_LIMIT 512M +ENV PHP_OPCACHE_INTERNED_STRINGS_BUFFER 32 +ENV PHP_OPCACHE_MAX_ACCELERATED_FILES 10000 +ENV PHP_OPCACHE_MEMORY_CONSUMPTION 128 +ENV PHP_OPCACHE_SAVE_COMMENTS 1 +ENV PHP_OPCACHE_REVALIDATE_FREQ 60 +ENV PHP_OPCACHE_JIT 1255 +ENV PHP_OPCACHE_JIT_BUFFER_SIZE 128M RUN set -ex; \ \ savedAptMark="$(apt-mark showmanual)"; \ @@ -95,13 +102,13 @@ RUN set -ex; \ # see https://docs.nextcloud.com/server/latest/admin_manual/installation/server_tuning.html#enable-php-opcache RUN { \ echo 'opcache.enable=1'; \ - echo 'opcache.interned_strings_buffer=32'; \ - echo 'opcache.max_accelerated_files=10000'; \ - echo 'opcache.memory_consumption=128'; \ - echo 'opcache.save_comments=1'; \ - echo 'opcache.revalidate_freq=60'; \ - echo 'opcache.jit=1255'; \ - echo 'opcache.jit_buffer_size=128M'; \ + echo 'opcache.interned_strings_buffer=${PHP_OPCACHE_INTERNED_STRINGS_BUFFER}'; \ + echo 'opcache.max_accelerated_files=${PHP_OPCACHE_MAX_ACCELERATED_FILES}'; \ + echo 'opcache.memory_consumption=${PHP_OPCACHE_MEMORY_CONSUMPTION}'; \ + echo 'opcache.save_comments=${PHP_OPCACHE_SAVE_COMMENTS}'; \ + echo 'opcache.revalidate_freq=${PHP_OPCACHE_REVALIDATE_FREQ}'; \ + echo 'opcache.jit=${PHP_OPCACHE_JIT}'; \ + echo 'opcache.jit_buffer_size=${PHP_OPCACHE_JIT_BUFFER_SIZE}'; \ } > "${PHP_INI_DIR}/conf.d/opcache-recommended.ini"; \ \ echo 'apc.enable_cli=1' >> "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"; \ diff --git a/README.md b/README.md index d8f41dcb..d06729cb 100644 --- a/README.md +++ b/README.md @@ -216,6 +216,15 @@ To customize Apache max file upload limit you can change the following variable: - `APACHE_BODY_LIMIT` (default `1073741824` [1GiB]) This restricts the total size of the HTTP request body sent from the client. It specifies the number of _bytes_ that are allowed in a request body. A value of **0** means **unlimited**. Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html#apache) for more information. +To customize OPcache parameters you can change the following variables: +- `PHP_OPCACHE_INTERNED_STRINGS_BUFFER` (default `32`) The amount of memory used to store interned strings, in megabytes. +- `PHP_OPCACHE_MAX_ACCELERATED_FILES` (default `10000`) The maximum number of keys (and therefore scripts) in the OPcache hash table. The actual value used will be the first number in the set of prime numbers { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987, 262237, 524521, 1048793 } that is greater than or equal to the configured value. The minimum value is 200. The maximum value is 1000000. Values outside of this range are clamped to the permissible range. +- `PHP_OPCACHE_MEMORY_CONSUMPTION` (default `128`) The size of the shared memory storage used by OPcache, in megabytes. The minimum permissible value is "8", which is enforced if a smaller value is set. +- `PHP_OPCACHE_SAVE_COMMENT` (default `1`) If disabled, all documentation comments will be discarded from the opcode cache to reduce the size of the optimised code. Disabling this configuration directive may break applications and frameworks that rely on comment parsing for annotations, including Doctrine, Zend Framework 2 and PHPUnit. +- `PHP_OPCACHE_REVALIDATE_FREQ` (default `60`) How often to check script timestamps for updates, in seconds. 0 will result in OPcache checking for updates on every request. +- `PHP_OPCACHE_JIT` (default `1255`) This set JIT configuration mode. Check the [OPcache JIT configuration](https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.jit) for more information. +- `PHP_OPCACHE_JIT_BUFFER_SIZE` (default `128M`) The amount of shared memory to reserve for compiled JIT code. A zero value disables the JIT. + ### Auto configuration and Nextcloud updates The image comes with special config files for Nextcloud that set parameters specific to containerized usage (e.g. `upgrade-disable-web.config.php`) or enable auto configuration via environment variables (e.g. `reverse-proxy.config.php`). Within the image, the latest version of these config files are located in `/usr/src/nextcloud/config`. diff --git a/latest.txt b/latest.txt index 8dd5c17a..1c8398ee 100644 --- a/latest.txt +++ b/latest.txt @@ -1 +1 @@ -30.0.0 +30.0.1 diff --git a/versions.json b/versions.json index 241dc1c1..db86e255 100644 --- a/versions.json +++ b/versions.json @@ -1,9 +1,9 @@ { "30": { "branch": "30", - "version": "30.0.0", - "url": "https://download.nextcloud.com/server/releases/nextcloud-30.0.0.tar.bz2", - "ascUrl": "https://download.nextcloud.com/server/releases/nextcloud-30.0.0.tar.bz2.asc", + "version": "30.0.1", + "url": "https://download.nextcloud.com/server/releases/nextcloud-30.0.1.tar.bz2", + "ascUrl": "https://download.nextcloud.com/server/releases/nextcloud-30.0.1.tar.bz2.asc", "variants": { "apache": { "variant": "apache",