0
0
Fork 0
mirror of https://github.com/nextcloud/docker.git synced 2025-03-15 19:05:09 +01:00

Configure PHP memory_limit via environment variable

A new Docker environment variable named `PHP_MEMORY_LIMIT` has been introduced
which allows the PHP `memory_limit` setting to be controlled without mounting
any volumes from the host. The default memory limit is still `512M` if this
variable is not specified.

Signed-off-by: Robert Dailey <rcdailey@gmail.com>
This commit is contained in:
Robert Dailey 2018-12-06 14:45:13 -06:00
parent 783232840a
commit f988290dc9
No known key found for this signature in database
GPG key ID: 97751323F0627314
22 changed files with 109 additions and 22 deletions

View file

@ -89,12 +89,17 @@ RUN { \
\ \
echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \
\ \
echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \
\
mkdir /var/www/data; \ mkdir /var/www/data; \
chown -R www-data:root /var/www; \ chown -R www-data:root /var/www; \
chmod -R g=u /var/www chmod -R g=u /var/www
# Allow PHP memory_limit to be configurable. Touch the INI file and give open permissions so that
# the entrypoint script can modify it when the container is run by non-root users.
ENV PHP_MEMORY_LIMIT=512M
RUN true \
&& ini_file=/usr/local/etc/php/conf.d/memory-limit.ini \
&& touch "$ini_file" && chmod a+rw "$ini_file"
VOLUME /var/www/html VOLUME /var/www/html
RUN a2enmod rewrite remoteip ;\ RUN a2enmod rewrite remoteip ;\

View file

@ -19,6 +19,9 @@ run_as() {
fi fi
} }
# Update PHP's memory limit based on environment variable specified to Docker
echo "memory_limit=$PHP_MEMORY_LIMIT" > /usr/local/etc/php/conf.d/memory-limit.ini
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
installed_version="0.0.0.0" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then

View file

@ -78,12 +78,17 @@ RUN { \
\ \
echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \
\ \
echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \
\
mkdir /var/www/data; \ mkdir /var/www/data; \
chown -R www-data:root /var/www; \ chown -R www-data:root /var/www; \
chmod -R g=u /var/www chmod -R g=u /var/www
# Allow PHP memory_limit to be configurable. Touch the INI file and give open permissions so that
# the entrypoint script can modify it when the container is run by non-root users.
ENV PHP_MEMORY_LIMIT=512M
RUN true \
&& ini_file=/usr/local/etc/php/conf.d/memory-limit.ini \
&& touch "$ini_file" && chmod a+rw "$ini_file"
VOLUME /var/www/html VOLUME /var/www/html

View file

@ -19,6 +19,9 @@ run_as() {
fi fi
} }
# Update PHP's memory limit based on environment variable specified to Docker
echo "memory_limit=$PHP_MEMORY_LIMIT" > /usr/local/etc/php/conf.d/memory-limit.ini
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
installed_version="0.0.0.0" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then

View file

@ -89,12 +89,17 @@ RUN { \
\ \
echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \
\ \
echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \
\
mkdir /var/www/data; \ mkdir /var/www/data; \
chown -R www-data:root /var/www; \ chown -R www-data:root /var/www; \
chmod -R g=u /var/www chmod -R g=u /var/www
# Allow PHP memory_limit to be configurable. Touch the INI file and give open permissions so that
# the entrypoint script can modify it when the container is run by non-root users.
ENV PHP_MEMORY_LIMIT=512M
RUN true \
&& ini_file=/usr/local/etc/php/conf.d/memory-limit.ini \
&& touch "$ini_file" && chmod a+rw "$ini_file"
VOLUME /var/www/html VOLUME /var/www/html

View file

@ -19,6 +19,9 @@ run_as() {
fi fi
} }
# Update PHP's memory limit based on environment variable specified to Docker
echo "memory_limit=$PHP_MEMORY_LIMIT" > /usr/local/etc/php/conf.d/memory-limit.ini
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
installed_version="0.0.0.0" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then

View file

@ -89,12 +89,17 @@ RUN { \
\ \
echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \
\ \
echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \
\
mkdir /var/www/data; \ mkdir /var/www/data; \
chown -R www-data:root /var/www; \ chown -R www-data:root /var/www; \
chmod -R g=u /var/www chmod -R g=u /var/www
# Allow PHP memory_limit to be configurable. Touch the INI file and give open permissions so that
# the entrypoint script can modify it when the container is run by non-root users.
ENV PHP_MEMORY_LIMIT=512M
RUN true \
&& ini_file=/usr/local/etc/php/conf.d/memory-limit.ini \
&& touch "$ini_file" && chmod a+rw "$ini_file"
VOLUME /var/www/html VOLUME /var/www/html
RUN a2enmod rewrite remoteip ;\ RUN a2enmod rewrite remoteip ;\

View file

@ -19,6 +19,9 @@ run_as() {
fi fi
} }
# Update PHP's memory limit based on environment variable specified to Docker
echo "memory_limit=$PHP_MEMORY_LIMIT" > /usr/local/etc/php/conf.d/memory-limit.ini
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
installed_version="0.0.0.0" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then

View file

@ -78,12 +78,17 @@ RUN { \
\ \
echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \
\ \
echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \
\
mkdir /var/www/data; \ mkdir /var/www/data; \
chown -R www-data:root /var/www; \ chown -R www-data:root /var/www; \
chmod -R g=u /var/www chmod -R g=u /var/www
# Allow PHP memory_limit to be configurable. Touch the INI file and give open permissions so that
# the entrypoint script can modify it when the container is run by non-root users.
ENV PHP_MEMORY_LIMIT=512M
RUN true \
&& ini_file=/usr/local/etc/php/conf.d/memory-limit.ini \
&& touch "$ini_file" && chmod a+rw "$ini_file"
VOLUME /var/www/html VOLUME /var/www/html

View file

@ -19,6 +19,9 @@ run_as() {
fi fi
} }
# Update PHP's memory limit based on environment variable specified to Docker
echo "memory_limit=$PHP_MEMORY_LIMIT" > /usr/local/etc/php/conf.d/memory-limit.ini
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
installed_version="0.0.0.0" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then

View file

@ -89,12 +89,17 @@ RUN { \
\ \
echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \
\ \
echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \
\
mkdir /var/www/data; \ mkdir /var/www/data; \
chown -R www-data:root /var/www; \ chown -R www-data:root /var/www; \
chmod -R g=u /var/www chmod -R g=u /var/www
# Allow PHP memory_limit to be configurable. Touch the INI file and give open permissions so that
# the entrypoint script can modify it when the container is run by non-root users.
ENV PHP_MEMORY_LIMIT=512M
RUN true \
&& ini_file=/usr/local/etc/php/conf.d/memory-limit.ini \
&& touch "$ini_file" && chmod a+rw "$ini_file"
VOLUME /var/www/html VOLUME /var/www/html

View file

@ -19,6 +19,9 @@ run_as() {
fi fi
} }
# Update PHP's memory limit based on environment variable specified to Docker
echo "memory_limit=$PHP_MEMORY_LIMIT" > /usr/local/etc/php/conf.d/memory-limit.ini
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
installed_version="0.0.0.0" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then

View file

@ -89,12 +89,17 @@ RUN { \
\ \
echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \
\ \
echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \
\
mkdir /var/www/data; \ mkdir /var/www/data; \
chown -R www-data:root /var/www; \ chown -R www-data:root /var/www; \
chmod -R g=u /var/www chmod -R g=u /var/www
# Allow PHP memory_limit to be configurable. Touch the INI file and give open permissions so that
# the entrypoint script can modify it when the container is run by non-root users.
ENV PHP_MEMORY_LIMIT=512M
RUN true \
&& ini_file=/usr/local/etc/php/conf.d/memory-limit.ini \
&& touch "$ini_file" && chmod a+rw "$ini_file"
VOLUME /var/www/html VOLUME /var/www/html
RUN a2enmod rewrite remoteip ;\ RUN a2enmod rewrite remoteip ;\

View file

@ -19,6 +19,9 @@ run_as() {
fi fi
} }
# Update PHP's memory limit based on environment variable specified to Docker
echo "memory_limit=$PHP_MEMORY_LIMIT" > /usr/local/etc/php/conf.d/memory-limit.ini
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
installed_version="0.0.0.0" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then

View file

@ -78,12 +78,17 @@ RUN { \
\ \
echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \
\ \
echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \
\
mkdir /var/www/data; \ mkdir /var/www/data; \
chown -R www-data:root /var/www; \ chown -R www-data:root /var/www; \
chmod -R g=u /var/www chmod -R g=u /var/www
# Allow PHP memory_limit to be configurable. Touch the INI file and give open permissions so that
# the entrypoint script can modify it when the container is run by non-root users.
ENV PHP_MEMORY_LIMIT=512M
RUN true \
&& ini_file=/usr/local/etc/php/conf.d/memory-limit.ini \
&& touch "$ini_file" && chmod a+rw "$ini_file"
VOLUME /var/www/html VOLUME /var/www/html

View file

@ -19,6 +19,9 @@ run_as() {
fi fi
} }
# Update PHP's memory limit based on environment variable specified to Docker
echo "memory_limit=$PHP_MEMORY_LIMIT" > /usr/local/etc/php/conf.d/memory-limit.ini
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
installed_version="0.0.0.0" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then

View file

@ -89,12 +89,17 @@ RUN { \
\ \
echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \
\ \
echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \
\
mkdir /var/www/data; \ mkdir /var/www/data; \
chown -R www-data:root /var/www; \ chown -R www-data:root /var/www; \
chmod -R g=u /var/www chmod -R g=u /var/www
# Allow PHP memory_limit to be configurable. Touch the INI file and give open permissions so that
# the entrypoint script can modify it when the container is run by non-root users.
ENV PHP_MEMORY_LIMIT=512M
RUN true \
&& ini_file=/usr/local/etc/php/conf.d/memory-limit.ini \
&& touch "$ini_file" && chmod a+rw "$ini_file"
VOLUME /var/www/html VOLUME /var/www/html

View file

@ -19,6 +19,9 @@ run_as() {
fi fi
} }
# Update PHP's memory limit based on environment variable specified to Docker
echo "memory_limit=$PHP_MEMORY_LIMIT" > /usr/local/etc/php/conf.d/memory-limit.ini
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
installed_version="0.0.0.0" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then

View file

@ -77,12 +77,17 @@ RUN { \
\ \
echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \
\ \
echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \
\
mkdir /var/www/data; \ mkdir /var/www/data; \
chown -R www-data:root /var/www; \ chown -R www-data:root /var/www; \
chmod -R g=u /var/www chmod -R g=u /var/www
# Allow PHP memory_limit to be configurable. Touch the INI file and give open permissions so that
# the entrypoint script can modify it when the container is run by non-root users.
ENV PHP_MEMORY_LIMIT=512M
RUN true \
&& ini_file=/usr/local/etc/php/conf.d/memory-limit.ini \
&& touch "$ini_file" && chmod a+rw "$ini_file"
VOLUME /var/www/html VOLUME /var/www/html
%%VARIANT_EXTRAS%% %%VARIANT_EXTRAS%%

View file

@ -88,12 +88,17 @@ RUN { \
\ \
echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \ echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \
\ \
echo 'memory_limit=512M' > /usr/local/etc/php/conf.d/memory-limit.ini; \
\
mkdir /var/www/data; \ mkdir /var/www/data; \
chown -R www-data:root /var/www; \ chown -R www-data:root /var/www; \
chmod -R g=u /var/www chmod -R g=u /var/www
# Allow PHP memory_limit to be configurable. Touch the INI file and give open permissions so that
# the entrypoint script can modify it when the container is run by non-root users.
ENV PHP_MEMORY_LIMIT=512M
RUN true \
&& ini_file=/usr/local/etc/php/conf.d/memory-limit.ini \
&& touch "$ini_file" && chmod a+rw "$ini_file"
VOLUME /var/www/html VOLUME /var/www/html
%%VARIANT_EXTRAS%% %%VARIANT_EXTRAS%%

View file

@ -130,7 +130,9 @@ The install and update script is only triggered when a default command is used (
- `NEXTCLOUD_UPDATE` (default: _0_) - `NEXTCLOUD_UPDATE` (default: _0_)
The PHP `memory_limit` setting can be controlled by specifying the below environment variable.
- `PHP_MEMORY_LIMIT` (default: `512M`)
# Running this image with docker-compose # Running this image with docker-compose
The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples what you have to look for. The easiest way to get a fully featured and functional setup is using a `docker-compose` file. There are too many different possibilities to setup your system, so here are only some examples what you have to look for.

View file

@ -19,6 +19,9 @@ run_as() {
fi fi
} }
# Update PHP's memory limit based on environment variable specified to Docker
echo "memory_limit=$PHP_MEMORY_LIMIT" > /usr/local/etc/php/conf.d/memory-limit.ini
if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UPDATE:-0}" -eq 1 ]; then
installed_version="0.0.0.0" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then