diff --git a/README.md b/README.md index 8933161e..289f43f9 100644 --- a/README.md +++ b/README.md @@ -87,13 +87,38 @@ If you want to use named volumes for all of these, it would look like this: ```console $ docker run -d \ -v nextcloud:/var/www/html \ --v apps:/var/www/html/custom_apps \ +-v custom_apps:/var/www/html/custom_apps \ -v config:/var/www/html/config \ -v data:/var/www/html/data \ -v theme:/var/www/html/themes/ \ nextcloud ``` +If you'd prefer to use bind mounts instead of named volumes, for instance, when working with different device or network mounts for user data files and configuration: +```console +$ docker run -d \ +-v /path/on/host/to/folder/nextcloud:/var/www/html \ +-v /path/on/host/to/folder/custom_apps:/var/www/html/custom_apps \ +-v /path/on/host/to/folder/config:/var/www/html/config \ +-v /path/on/host/to/folder/data:/var/www/html/data \ +-v /path/on/host/to/folder/theme:/var/www/html/themes/ \ +nextcloud +``` + +Here’s the same example using Docker's more detailed `--mount`. Note that with `-v` or `--volume`, the specified folders are created automatically if they don't exist. However, when using `--mount` for bind mounts, the directories must already exist on the host, or Docker will return an error. +```console +$ docker run -d \ +--mount type=bind,source=/path/on/host/to/folder/nextcloud,target=/var/www/html \ +--mount type=bind,source=/path/on/host/to/folder/custom_apps,target=/var/www/html/custom_apps \ +--mount type=bind,source=/path/on/host/to/folder/config,target=/var/www/html/config \ +--mount type=bind,source=/path/on/host/to/folder/data,target=/var/www/html/data \ +--mount type=bind,source=/path/on/host/to/folder/theme,target=/var/www/html/themes/ \ +nextcloud +``` +The examples above use figurative directory `/path/on/host/to/folder/` for bind mounts. Please modify the paths by using either a relative or absolute path. + +NOTE: Do not confuse the `apps` and `custom_apps` folders. These folders contain different sets of apps, and mixing them will result in a broken installation. The former contains "shipped" apps, which come with Nextcloud Server. The latter contains apps you install from the App Store. + ### Custom volumes If mounting additional volumes under `/var/www/html`, you should consider: diff --git a/update.sh b/update.sh index 6e576238..ec087225 100755 --- a/update.sh +++ b/update.sh @@ -27,8 +27,8 @@ declare -A base=( 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' - [fpm]='' - [fpm-alpine]='' + [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]='\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=(