From 81a090ab4aaa607be252ac6852ab3a1b35ee6e35 Mon Sep 17 00:00:00 2001 From: Martin Gerhardy Date: Mon, 5 Oct 2020 18:10:07 +0200 Subject: [PATCH 1/3] Allow custom script execution on installation --- 20.0/apache/entrypoint.sh | 4 ++++ 20.0/fpm-alpine/entrypoint.sh | 4 ++++ 20.0/fpm/entrypoint.sh | 4 ++++ README.md | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/20.0/apache/entrypoint.sh b/20.0/apache/entrypoint.sh index b9ec5fc5f..428e2accb 100755 --- a/20.0/apache/entrypoint.sh +++ b/20.0/apache/entrypoint.sh @@ -168,6 +168,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP NC_TRUSTED_DOMAIN_IDX=$(($NC_TRUSTED_DOMAIN_IDX+1)) done fi + + if [ -n "${NEXTCLOUD_CUSTOM_INSTALL_SCRIPT+x}" ]; then + run_as "${NEXTCLOUD_CUSTOM_INSTALL_SCRIPT}" + fi else echo "running web-based installer on first connect!" fi diff --git a/20.0/fpm-alpine/entrypoint.sh b/20.0/fpm-alpine/entrypoint.sh index b9ec5fc5f..428e2accb 100755 --- a/20.0/fpm-alpine/entrypoint.sh +++ b/20.0/fpm-alpine/entrypoint.sh @@ -168,6 +168,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP NC_TRUSTED_DOMAIN_IDX=$(($NC_TRUSTED_DOMAIN_IDX+1)) done fi + + if [ -n "${NEXTCLOUD_CUSTOM_INSTALL_SCRIPT+x}" ]; then + run_as "${NEXTCLOUD_CUSTOM_INSTALL_SCRIPT}" + fi else echo "running web-based installer on first connect!" fi diff --git a/20.0/fpm/entrypoint.sh b/20.0/fpm/entrypoint.sh index b9ec5fc5f..428e2accb 100755 --- a/20.0/fpm/entrypoint.sh +++ b/20.0/fpm/entrypoint.sh @@ -168,6 +168,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP NC_TRUSTED_DOMAIN_IDX=$(($NC_TRUSTED_DOMAIN_IDX+1)) done fi + + if [ -n "${NEXTCLOUD_CUSTOM_INSTALL_SCRIPT+x}" ]; then + run_as "${NEXTCLOUD_CUSTOM_INSTALL_SCRIPT}" + fi else echo "running web-based installer on first connect!" fi diff --git a/README.md b/README.md index bce42c73a..290ae8300 100644 --- a/README.md +++ b/README.md @@ -133,6 +133,10 @@ One or more trusted domains can be set through environment variable, too. They w - `NEXTCLOUD_TRUSTED_DOMAINS` (not set by default) Optional space-separated list of domains +To install custom apps, or execute occ commands, you can provide the path to a script that is run in the context of the www-data user. + +- `NEXTCLOUD_CUSTOM_INSTALL_SCRIPT` (not set by default) The path to a script that is mounted as volume. + The install and update script is only triggered when a default command is used (`apache-foreground` or `php-fpm`). If you use a custom command you have to enable the install / update with - `NEXTCLOUD_UPDATE` (default: _0_) From cadff3e6068006d935e749a88356b990af6aa01f Mon Sep 17 00:00:00 2001 From: Martin Gerhardy Date: Mon, 5 Oct 2020 18:13:35 +0200 Subject: [PATCH 2/3] Added /bin/sh as prefix to NEXTCLOUD_CUSTOM_INSTALL_SCRIPT prevents volumes from being mounted executable --- 20.0/apache/entrypoint.sh | 2 +- 20.0/fpm-alpine/entrypoint.sh | 2 +- 20.0/fpm/entrypoint.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/20.0/apache/entrypoint.sh b/20.0/apache/entrypoint.sh index 428e2accb..d7e04e74e 100755 --- a/20.0/apache/entrypoint.sh +++ b/20.0/apache/entrypoint.sh @@ -170,7 +170,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP fi if [ -n "${NEXTCLOUD_CUSTOM_INSTALL_SCRIPT+x}" ]; then - run_as "${NEXTCLOUD_CUSTOM_INSTALL_SCRIPT}" + run_as "/bin/sh ${NEXTCLOUD_CUSTOM_INSTALL_SCRIPT}" fi else echo "running web-based installer on first connect!" diff --git a/20.0/fpm-alpine/entrypoint.sh b/20.0/fpm-alpine/entrypoint.sh index 428e2accb..d7e04e74e 100755 --- a/20.0/fpm-alpine/entrypoint.sh +++ b/20.0/fpm-alpine/entrypoint.sh @@ -170,7 +170,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP fi if [ -n "${NEXTCLOUD_CUSTOM_INSTALL_SCRIPT+x}" ]; then - run_as "${NEXTCLOUD_CUSTOM_INSTALL_SCRIPT}" + run_as "/bin/sh ${NEXTCLOUD_CUSTOM_INSTALL_SCRIPT}" fi else echo "running web-based installer on first connect!" diff --git a/20.0/fpm/entrypoint.sh b/20.0/fpm/entrypoint.sh index 428e2accb..d7e04e74e 100755 --- a/20.0/fpm/entrypoint.sh +++ b/20.0/fpm/entrypoint.sh @@ -170,7 +170,7 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP fi if [ -n "${NEXTCLOUD_CUSTOM_INSTALL_SCRIPT+x}" ]; then - run_as "${NEXTCLOUD_CUSTOM_INSTALL_SCRIPT}" + run_as "/bin/sh ${NEXTCLOUD_CUSTOM_INSTALL_SCRIPT}" fi else echo "running web-based installer on first connect!" From 01ce83a7ebe5a5578a314020f5ed7b32ae0e6b19 Mon Sep 17 00:00:00 2001 From: Martin Gerhardy Date: Mon, 5 Oct 2020 18:52:28 +0200 Subject: [PATCH 3/3] Added custom script execution to source entrypoint, too --- docker-entrypoint.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index b9ec5fc5f..d7e04e74e 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -168,6 +168,10 @@ if expr "$1" : "apache" 1>/dev/null || [ "$1" = "php-fpm" ] || [ "${NEXTCLOUD_UP NC_TRUSTED_DOMAIN_IDX=$(($NC_TRUSTED_DOMAIN_IDX+1)) done fi + + if [ -n "${NEXTCLOUD_CUSTOM_INSTALL_SCRIPT+x}" ]; then + run_as "/bin/sh ${NEXTCLOUD_CUSTOM_INSTALL_SCRIPT}" + fi else echo "running web-based installer on first connect!" fi