summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Latifi <mail@florian-latifi.at>2024-06-25 23:25:29 +0200
committerGitHub <noreply@github.com>2024-06-25 21:25:29 +0000
commit5c58b2aa09b227949fbdd3d928179f6ed768c755 (patch)
treede2e37649d043c2e84ffa1ca62d3cfed959eb318
parent3e9cdb17c418350aabb5ef6b770a5f98e63ab24f (diff)
Warn on mismatching auto-config files (#2120)
Signed-off-by: Florian Latifi <mail@florian-latifi.at> Co-authored-by: Josh <josh.t.richards@gmail.com>
-rw-r--r--README.md12
-rwxr-xr-xdocker-entrypoint.sh11
2 files changed, 23 insertions, 0 deletions
diff --git a/README.md b/README.md
index bfa9213c..b9f7a66d 100644
--- a/README.md
+++ b/README.md
@@ -217,6 +217,18 @@ 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.
+### 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`.
+
+During a fresh Nextcloud installation, the latest version (from the image) of these files are copied into `/var/www/html/config` so that they are stored within your container's persistent volume and picked up by Nextcloud alongside your local configuration.
+
+The copied files, however, are **not** automatically overwritten whenever you update your environment with a newer Nextcloud image. This is to prevent local changes in `/var/www/html/config` from being unexpectedly overwritten. This may lead to your image-specific configuration files becoming outdated and image functionality not matching that which is documented.
+
+A warning will be generated in the container log output when outdated image-specific configuration files are detected at startup in a running container. When you see this warning, you should manually compare (or copy) the files from `/usr/src/nextcloud/config` to `/var/www/html/config`.
+
+As long as you have not modified any of the provided config files in `/var/www/html/config` (other than `config.php`) or only added new ones with names that do not conflict with the image specific ones, copying the new ones into place should be safe (but check the source path `/usr/src/nextcloud/config` for any newly named config files to avoid new overlaps just in case).
+
+Not keeping these files up-to-date when this warning appears may cause certain auto configuration environment variables to be ignored or the image to not work as documented or expected.
## Auto configuration via hook folders
diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh
index 541971c6..1c60984c 100755
--- a/docker-entrypoint.sh
+++ b/docker-entrypoint.sh
@@ -276,6 +276,17 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP
fi
) 9> /var/www/html/nextcloud-init-sync.lock
+ # warn if config files on persistent storage differ from the latest version of this image
+ for cfgPath in /usr/src/nextcloud/config/*.php; do
+ cfgFile=$(basename "$cfgPath")
+
+ if [ "$cfgFile" != "config.sample.php" ]; then
+ if ! cmp -s "/usr/src/nextcloud/config/$cfgFile" "/var/www/html/config/$cfgFile"; then
+ echo "Warning: /var/www/html/config/$cfgFile differs from the latest version of this image at /usr/src/nextcloud/config/$cfgFile"
+ fi
+ fi
+ done
+
run_path before-starting
fi