0
0
Fork 0
mirror of https://github.com/nextcloud/docker.git synced 2024-09-30 08:22:37 +02:00

Merge pull request #284 from nextcloud/posix

Make container scripts posix compliant

Allows the scripts to run natively in the alpine container.
This allows us to remove the bash dependency of the alpine image, which saves about 6MB.
This commit is contained in:
Tilo Spannagel 2018-03-16 11:46:09 +01:00 committed by GitHub
commit 0bb418696e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 250 additions and 238 deletions

View file

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
set -e set -eu
exec busybox crond -f -l 0 -L /dev/stdout exec busybox crond -f -l 0 -L /dev/stdout

View file

@ -1,29 +1,31 @@
#!/bin/bash #!/bin/sh
set -e set -eu
# version_greater A B returns whether A > B # version_greater A B returns whether A > B
function version_greater() { version_greater() {
[[ "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1" ]]; [ "$(printf '%s\n' "$@" | sort -t '.' -n -k1,1 -k2,2 -k3,3 -k4,4 | head -n 1)" != "$1" ]
} }
# return true if specified directory is empty # return true if specified directory is empty
function directory_empty() { directory_empty() {
[ -n "$(find "$1"/ -prune -empty)" ] [ -z "$(ls -A "$1/")" ]
} }
function run_as() { run_as() {
if [[ $EUID -eq 0 ]]; then if [ "$(id -u)" = 0 ]; then
su - www-data -s /bin/bash -c "$1" su - www-data -s /bin/sh -c "$1"
else else
bash -c "$1" sh -c "$1"
fi fi
} }
installed_version="0.0.0~unknown" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then
installed_version=$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);') # shellcheck disable=SC2016
installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
fi fi
image_version=$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);') # shellcheck disable=SC2016
image_version="$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);')"
if version_greater "$installed_version" "$image_version"; then if version_greater "$installed_version" "$image_version"; then
echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?" echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?"
@ -31,10 +33,10 @@ if version_greater "$installed_version" "$image_version"; then
fi fi
if version_greater "$image_version" "$installed_version"; then if version_greater "$image_version" "$installed_version"; then
if [ "$installed_version" != "0.0.0~unknown" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
run_as 'php /var/www/html/occ app:list' > /tmp/list_before run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_before
fi fi
if [[ $EUID -eq 0 ]]; then if [ "$(id -u)" = 0 ]; then
rsync_options="-rlDog --chown www-data:root" rsync_options="-rlDog --chown www-data:root"
else else
rsync_options="-rlD" rsync_options="-rlD"
@ -42,17 +44,17 @@ if version_greater "$image_version" "$installed_version"; then
rsync $rsync_options --delete --exclude /config/ --exclude /data/ --exclude /custom_apps/ --exclude /themes/ /usr/src/nextcloud/ /var/www/html/ rsync $rsync_options --delete --exclude /config/ --exclude /data/ --exclude /custom_apps/ --exclude /themes/ /usr/src/nextcloud/ /var/www/html/
for dir in config data custom_apps themes; do for dir in config data custom_apps themes; do
if [ ! -d /var/www/html/"$dir" ] || directory_empty /var/www/html/"$dir"; then if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
rsync $rsync_options --include /"$dir"/ --exclude '/*' /usr/src/nextcloud/ /var/www/html/ rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
fi fi
done done
if [ "$installed_version" != "0.0.0~unknown" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
run_as 'php /var/www/html/occ upgrade --no-app-disable' run_as 'php /var/www/html/occ upgrade --no-app-disable'
run_as 'php /var/www/html/occ app:list' > /tmp/list_after run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_after
echo "The following apps have beed disabled:" echo "The following apps have beed disabled:"
diff <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_before) <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_after) | grep '<' | cut -d- -f2 | cut -d: -f1 diff /tmp/list_before /tmp/list_after | grep '<' | cut -d- -f2 | cut -d: -f1
rm -f /tmp/list_before /tmp/list_after rm -f /tmp/list_before /tmp/list_after
fi fi
fi fi

View file

@ -4,8 +4,6 @@ FROM php:7.1-fpm-alpine
RUN set -ex; \ RUN set -ex; \
\ \
apk add --no-cache \ apk add --no-cache \
bash \
coreutils \
rsync \ rsync \
; \ ; \
\ \

View file

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
set -e set -eu
exec busybox crond -f -l 0 -L /dev/stdout exec busybox crond -f -l 0 -L /dev/stdout

View file

@ -1,29 +1,31 @@
#!/bin/bash #!/bin/sh
set -e set -eu
# version_greater A B returns whether A > B # version_greater A B returns whether A > B
function version_greater() { version_greater() {
[[ "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1" ]]; [ "$(printf '%s\n' "$@" | sort -t '.' -n -k1,1 -k2,2 -k3,3 -k4,4 | head -n 1)" != "$1" ]
} }
# return true if specified directory is empty # return true if specified directory is empty
function directory_empty() { directory_empty() {
[ -n "$(find "$1"/ -prune -empty)" ] [ -z "$(ls -A "$1/")" ]
} }
function run_as() { run_as() {
if [[ $EUID -eq 0 ]]; then if [ "$(id -u)" = 0 ]; then
su - www-data -s /bin/bash -c "$1" su - www-data -s /bin/sh -c "$1"
else else
bash -c "$1" sh -c "$1"
fi fi
} }
installed_version="0.0.0~unknown" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then
installed_version=$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);') # shellcheck disable=SC2016
installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
fi fi
image_version=$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);') # shellcheck disable=SC2016
image_version="$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);')"
if version_greater "$installed_version" "$image_version"; then if version_greater "$installed_version" "$image_version"; then
echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?" echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?"
@ -31,10 +33,10 @@ if version_greater "$installed_version" "$image_version"; then
fi fi
if version_greater "$image_version" "$installed_version"; then if version_greater "$image_version" "$installed_version"; then
if [ "$installed_version" != "0.0.0~unknown" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
run_as 'php /var/www/html/occ app:list' > /tmp/list_before run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_before
fi fi
if [[ $EUID -eq 0 ]]; then if [ "$(id -u)" = 0 ]; then
rsync_options="-rlDog --chown www-data:root" rsync_options="-rlDog --chown www-data:root"
else else
rsync_options="-rlD" rsync_options="-rlD"
@ -42,17 +44,17 @@ if version_greater "$image_version" "$installed_version"; then
rsync $rsync_options --delete --exclude /config/ --exclude /data/ --exclude /custom_apps/ --exclude /themes/ /usr/src/nextcloud/ /var/www/html/ rsync $rsync_options --delete --exclude /config/ --exclude /data/ --exclude /custom_apps/ --exclude /themes/ /usr/src/nextcloud/ /var/www/html/
for dir in config data custom_apps themes; do for dir in config data custom_apps themes; do
if [ ! -d /var/www/html/"$dir" ] || directory_empty /var/www/html/"$dir"; then if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
rsync $rsync_options --include /"$dir"/ --exclude '/*' /usr/src/nextcloud/ /var/www/html/ rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
fi fi
done done
if [ "$installed_version" != "0.0.0~unknown" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
run_as 'php /var/www/html/occ upgrade --no-app-disable' run_as 'php /var/www/html/occ upgrade --no-app-disable'
run_as 'php /var/www/html/occ app:list' > /tmp/list_after run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_after
echo "The following apps have beed disabled:" echo "The following apps have beed disabled:"
diff <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_before) <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_after) | grep '<' | cut -d- -f2 | cut -d: -f1 diff /tmp/list_before /tmp/list_after | grep '<' | cut -d- -f2 | cut -d: -f1
rm -f /tmp/list_before /tmp/list_after rm -f /tmp/list_before /tmp/list_after
fi fi
fi fi

View file

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
set -e set -eu
exec busybox crond -f -l 0 -L /dev/stdout exec busybox crond -f -l 0 -L /dev/stdout

View file

@ -1,29 +1,31 @@
#!/bin/bash #!/bin/sh
set -e set -eu
# version_greater A B returns whether A > B # version_greater A B returns whether A > B
function version_greater() { version_greater() {
[[ "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1" ]]; [ "$(printf '%s\n' "$@" | sort -t '.' -n -k1,1 -k2,2 -k3,3 -k4,4 | head -n 1)" != "$1" ]
} }
# return true if specified directory is empty # return true if specified directory is empty
function directory_empty() { directory_empty() {
[ -n "$(find "$1"/ -prune -empty)" ] [ -z "$(ls -A "$1/")" ]
} }
function run_as() { run_as() {
if [[ $EUID -eq 0 ]]; then if [ "$(id -u)" = 0 ]; then
su - www-data -s /bin/bash -c "$1" su - www-data -s /bin/sh -c "$1"
else else
bash -c "$1" sh -c "$1"
fi fi
} }
installed_version="0.0.0~unknown" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then
installed_version=$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);') # shellcheck disable=SC2016
installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
fi fi
image_version=$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);') # shellcheck disable=SC2016
image_version="$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);')"
if version_greater "$installed_version" "$image_version"; then if version_greater "$installed_version" "$image_version"; then
echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?" echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?"
@ -31,10 +33,10 @@ if version_greater "$installed_version" "$image_version"; then
fi fi
if version_greater "$image_version" "$installed_version"; then if version_greater "$image_version" "$installed_version"; then
if [ "$installed_version" != "0.0.0~unknown" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
run_as 'php /var/www/html/occ app:list' > /tmp/list_before run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_before
fi fi
if [[ $EUID -eq 0 ]]; then if [ "$(id -u)" = 0 ]; then
rsync_options="-rlDog --chown www-data:root" rsync_options="-rlDog --chown www-data:root"
else else
rsync_options="-rlD" rsync_options="-rlD"
@ -42,17 +44,17 @@ if version_greater "$image_version" "$installed_version"; then
rsync $rsync_options --delete --exclude /config/ --exclude /data/ --exclude /custom_apps/ --exclude /themes/ /usr/src/nextcloud/ /var/www/html/ rsync $rsync_options --delete --exclude /config/ --exclude /data/ --exclude /custom_apps/ --exclude /themes/ /usr/src/nextcloud/ /var/www/html/
for dir in config data custom_apps themes; do for dir in config data custom_apps themes; do
if [ ! -d /var/www/html/"$dir" ] || directory_empty /var/www/html/"$dir"; then if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
rsync $rsync_options --include /"$dir"/ --exclude '/*' /usr/src/nextcloud/ /var/www/html/ rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
fi fi
done done
if [ "$installed_version" != "0.0.0~unknown" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
run_as 'php /var/www/html/occ upgrade --no-app-disable' run_as 'php /var/www/html/occ upgrade --no-app-disable'
run_as 'php /var/www/html/occ app:list' > /tmp/list_after run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_after
echo "The following apps have beed disabled:" echo "The following apps have beed disabled:"
diff <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_before) <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_after) | grep '<' | cut -d- -f2 | cut -d: -f1 diff /tmp/list_before /tmp/list_after | grep '<' | cut -d- -f2 | cut -d: -f1
rm -f /tmp/list_before /tmp/list_after rm -f /tmp/list_before /tmp/list_after
fi fi
fi fi

View file

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
set -e set -eu
exec busybox crond -f -l 0 -L /dev/stdout exec busybox crond -f -l 0 -L /dev/stdout

View file

@ -1,29 +1,31 @@
#!/bin/bash #!/bin/sh
set -e set -eu
# version_greater A B returns whether A > B # version_greater A B returns whether A > B
function version_greater() { version_greater() {
[[ "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1" ]]; [ "$(printf '%s\n' "$@" | sort -t '.' -n -k1,1 -k2,2 -k3,3 -k4,4 | head -n 1)" != "$1" ]
} }
# return true if specified directory is empty # return true if specified directory is empty
function directory_empty() { directory_empty() {
[ -n "$(find "$1"/ -prune -empty)" ] [ -z "$(ls -A "$1/")" ]
} }
function run_as() { run_as() {
if [[ $EUID -eq 0 ]]; then if [ "$(id -u)" = 0 ]; then
su - www-data -s /bin/bash -c "$1" su - www-data -s /bin/sh -c "$1"
else else
bash -c "$1" sh -c "$1"
fi fi
} }
installed_version="0.0.0~unknown" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then
installed_version=$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);') # shellcheck disable=SC2016
installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
fi fi
image_version=$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);') # shellcheck disable=SC2016
image_version="$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);')"
if version_greater "$installed_version" "$image_version"; then if version_greater "$installed_version" "$image_version"; then
echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?" echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?"
@ -31,10 +33,10 @@ if version_greater "$installed_version" "$image_version"; then
fi fi
if version_greater "$image_version" "$installed_version"; then if version_greater "$image_version" "$installed_version"; then
if [ "$installed_version" != "0.0.0~unknown" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
run_as 'php /var/www/html/occ app:list' > /tmp/list_before run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_before
fi fi
if [[ $EUID -eq 0 ]]; then if [ "$(id -u)" = 0 ]; then
rsync_options="-rlDog --chown www-data:root" rsync_options="-rlDog --chown www-data:root"
else else
rsync_options="-rlD" rsync_options="-rlD"
@ -42,17 +44,17 @@ if version_greater "$image_version" "$installed_version"; then
rsync $rsync_options --delete --exclude /config/ --exclude /data/ --exclude /custom_apps/ --exclude /themes/ /usr/src/nextcloud/ /var/www/html/ rsync $rsync_options --delete --exclude /config/ --exclude /data/ --exclude /custom_apps/ --exclude /themes/ /usr/src/nextcloud/ /var/www/html/
for dir in config data custom_apps themes; do for dir in config data custom_apps themes; do
if [ ! -d /var/www/html/"$dir" ] || directory_empty /var/www/html/"$dir"; then if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
rsync $rsync_options --include /"$dir"/ --exclude '/*' /usr/src/nextcloud/ /var/www/html/ rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
fi fi
done done
if [ "$installed_version" != "0.0.0~unknown" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
run_as 'php /var/www/html/occ upgrade --no-app-disable' run_as 'php /var/www/html/occ upgrade --no-app-disable'
run_as 'php /var/www/html/occ app:list' > /tmp/list_after run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_after
echo "The following apps have beed disabled:" echo "The following apps have beed disabled:"
diff <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_before) <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_after) | grep '<' | cut -d- -f2 | cut -d: -f1 diff /tmp/list_before /tmp/list_after | grep '<' | cut -d- -f2 | cut -d: -f1
rm -f /tmp/list_before /tmp/list_after rm -f /tmp/list_before /tmp/list_after
fi fi
fi fi

View file

@ -4,8 +4,6 @@ FROM php:7.1-fpm-alpine
RUN set -ex; \ RUN set -ex; \
\ \
apk add --no-cache \ apk add --no-cache \
bash \
coreutils \
rsync \ rsync \
; \ ; \
\ \

View file

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
set -e set -eu
exec busybox crond -f -l 0 -L /dev/stdout exec busybox crond -f -l 0 -L /dev/stdout

View file

@ -1,29 +1,31 @@
#!/bin/bash #!/bin/sh
set -e set -eu
# version_greater A B returns whether A > B # version_greater A B returns whether A > B
function version_greater() { version_greater() {
[[ "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1" ]]; [ "$(printf '%s\n' "$@" | sort -t '.' -n -k1,1 -k2,2 -k3,3 -k4,4 | head -n 1)" != "$1" ]
} }
# return true if specified directory is empty # return true if specified directory is empty
function directory_empty() { directory_empty() {
[ -n "$(find "$1"/ -prune -empty)" ] [ -z "$(ls -A "$1/")" ]
} }
function run_as() { run_as() {
if [[ $EUID -eq 0 ]]; then if [ "$(id -u)" = 0 ]; then
su - www-data -s /bin/bash -c "$1" su - www-data -s /bin/sh -c "$1"
else else
bash -c "$1" sh -c "$1"
fi fi
} }
installed_version="0.0.0~unknown" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then
installed_version=$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);') # shellcheck disable=SC2016
installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
fi fi
image_version=$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);') # shellcheck disable=SC2016
image_version="$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);')"
if version_greater "$installed_version" "$image_version"; then if version_greater "$installed_version" "$image_version"; then
echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?" echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?"
@ -31,10 +33,10 @@ if version_greater "$installed_version" "$image_version"; then
fi fi
if version_greater "$image_version" "$installed_version"; then if version_greater "$image_version" "$installed_version"; then
if [ "$installed_version" != "0.0.0~unknown" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
run_as 'php /var/www/html/occ app:list' > /tmp/list_before run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_before
fi fi
if [[ $EUID -eq 0 ]]; then if [ "$(id -u)" = 0 ]; then
rsync_options="-rlDog --chown www-data:root" rsync_options="-rlDog --chown www-data:root"
else else
rsync_options="-rlD" rsync_options="-rlD"
@ -42,17 +44,17 @@ if version_greater "$image_version" "$installed_version"; then
rsync $rsync_options --delete --exclude /config/ --exclude /data/ --exclude /custom_apps/ --exclude /themes/ /usr/src/nextcloud/ /var/www/html/ rsync $rsync_options --delete --exclude /config/ --exclude /data/ --exclude /custom_apps/ --exclude /themes/ /usr/src/nextcloud/ /var/www/html/
for dir in config data custom_apps themes; do for dir in config data custom_apps themes; do
if [ ! -d /var/www/html/"$dir" ] || directory_empty /var/www/html/"$dir"; then if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
rsync $rsync_options --include /"$dir"/ --exclude '/*' /usr/src/nextcloud/ /var/www/html/ rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
fi fi
done done
if [ "$installed_version" != "0.0.0~unknown" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
run_as 'php /var/www/html/occ upgrade --no-app-disable' run_as 'php /var/www/html/occ upgrade --no-app-disable'
run_as 'php /var/www/html/occ app:list' > /tmp/list_after run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_after
echo "The following apps have beed disabled:" echo "The following apps have beed disabled:"
diff <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_before) <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_after) | grep '<' | cut -d- -f2 | cut -d: -f1 diff /tmp/list_before /tmp/list_after | grep '<' | cut -d- -f2 | cut -d: -f1
rm -f /tmp/list_before /tmp/list_after rm -f /tmp/list_before /tmp/list_after
fi fi
fi fi

View file

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
set -e set -eu
exec busybox crond -f -l 0 -L /dev/stdout exec busybox crond -f -l 0 -L /dev/stdout

View file

@ -1,29 +1,31 @@
#!/bin/bash #!/bin/sh
set -e set -eu
# version_greater A B returns whether A > B # version_greater A B returns whether A > B
function version_greater() { version_greater() {
[[ "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1" ]]; [ "$(printf '%s\n' "$@" | sort -t '.' -n -k1,1 -k2,2 -k3,3 -k4,4 | head -n 1)" != "$1" ]
} }
# return true if specified directory is empty # return true if specified directory is empty
function directory_empty() { directory_empty() {
[ -n "$(find "$1"/ -prune -empty)" ] [ -z "$(ls -A "$1/")" ]
} }
function run_as() { run_as() {
if [[ $EUID -eq 0 ]]; then if [ "$(id -u)" = 0 ]; then
su - www-data -s /bin/bash -c "$1" su - www-data -s /bin/sh -c "$1"
else else
bash -c "$1" sh -c "$1"
fi fi
} }
installed_version="0.0.0~unknown" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then
installed_version=$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);') # shellcheck disable=SC2016
installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
fi fi
image_version=$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);') # shellcheck disable=SC2016
image_version="$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);')"
if version_greater "$installed_version" "$image_version"; then if version_greater "$installed_version" "$image_version"; then
echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?" echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?"
@ -31,10 +33,10 @@ if version_greater "$installed_version" "$image_version"; then
fi fi
if version_greater "$image_version" "$installed_version"; then if version_greater "$image_version" "$installed_version"; then
if [ "$installed_version" != "0.0.0~unknown" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
run_as 'php /var/www/html/occ app:list' > /tmp/list_before run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_before
fi fi
if [[ $EUID -eq 0 ]]; then if [ "$(id -u)" = 0 ]; then
rsync_options="-rlDog --chown www-data:root" rsync_options="-rlDog --chown www-data:root"
else else
rsync_options="-rlD" rsync_options="-rlD"
@ -42,17 +44,17 @@ if version_greater "$image_version" "$installed_version"; then
rsync $rsync_options --delete --exclude /config/ --exclude /data/ --exclude /custom_apps/ --exclude /themes/ /usr/src/nextcloud/ /var/www/html/ rsync $rsync_options --delete --exclude /config/ --exclude /data/ --exclude /custom_apps/ --exclude /themes/ /usr/src/nextcloud/ /var/www/html/
for dir in config data custom_apps themes; do for dir in config data custom_apps themes; do
if [ ! -d /var/www/html/"$dir" ] || directory_empty /var/www/html/"$dir"; then if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
rsync $rsync_options --include /"$dir"/ --exclude '/*' /usr/src/nextcloud/ /var/www/html/ rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
fi fi
done done
if [ "$installed_version" != "0.0.0~unknown" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
run_as 'php /var/www/html/occ upgrade --no-app-disable' run_as 'php /var/www/html/occ upgrade --no-app-disable'
run_as 'php /var/www/html/occ app:list' > /tmp/list_after run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_after
echo "The following apps have beed disabled:" echo "The following apps have beed disabled:"
diff <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_before) <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_after) | grep '<' | cut -d- -f2 | cut -d: -f1 diff /tmp/list_before /tmp/list_after | grep '<' | cut -d- -f2 | cut -d: -f1
rm -f /tmp/list_before /tmp/list_after rm -f /tmp/list_before /tmp/list_after
fi fi
fi fi

View file

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
set -e set -eu
exec busybox crond -f -l 0 -L /dev/stdout exec busybox crond -f -l 0 -L /dev/stdout

View file

@ -1,29 +1,31 @@
#!/bin/bash #!/bin/sh
set -e set -eu
# version_greater A B returns whether A > B # version_greater A B returns whether A > B
function version_greater() { version_greater() {
[[ "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1" ]]; [ "$(printf '%s\n' "$@" | sort -t '.' -n -k1,1 -k2,2 -k3,3 -k4,4 | head -n 1)" != "$1" ]
} }
# return true if specified directory is empty # return true if specified directory is empty
function directory_empty() { directory_empty() {
[ -n "$(find "$1"/ -prune -empty)" ] [ -z "$(ls -A "$1/")" ]
} }
function run_as() { run_as() {
if [[ $EUID -eq 0 ]]; then if [ "$(id -u)" = 0 ]; then
su - www-data -s /bin/bash -c "$1" su - www-data -s /bin/sh -c "$1"
else else
bash -c "$1" sh -c "$1"
fi fi
} }
installed_version="0.0.0~unknown" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then
installed_version=$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);') # shellcheck disable=SC2016
installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
fi fi
image_version=$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);') # shellcheck disable=SC2016
image_version="$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);')"
if version_greater "$installed_version" "$image_version"; then if version_greater "$installed_version" "$image_version"; then
echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?" echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?"
@ -31,10 +33,10 @@ if version_greater "$installed_version" "$image_version"; then
fi fi
if version_greater "$image_version" "$installed_version"; then if version_greater "$image_version" "$installed_version"; then
if [ "$installed_version" != "0.0.0~unknown" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
run_as 'php /var/www/html/occ app:list' > /tmp/list_before run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_before
fi fi
if [[ $EUID -eq 0 ]]; then if [ "$(id -u)" = 0 ]; then
rsync_options="-rlDog --chown www-data:root" rsync_options="-rlDog --chown www-data:root"
else else
rsync_options="-rlD" rsync_options="-rlD"
@ -42,17 +44,17 @@ if version_greater "$image_version" "$installed_version"; then
rsync $rsync_options --delete --exclude /config/ --exclude /data/ --exclude /custom_apps/ --exclude /themes/ /usr/src/nextcloud/ /var/www/html/ rsync $rsync_options --delete --exclude /config/ --exclude /data/ --exclude /custom_apps/ --exclude /themes/ /usr/src/nextcloud/ /var/www/html/
for dir in config data custom_apps themes; do for dir in config data custom_apps themes; do
if [ ! -d /var/www/html/"$dir" ] || directory_empty /var/www/html/"$dir"; then if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
rsync $rsync_options --include /"$dir"/ --exclude '/*' /usr/src/nextcloud/ /var/www/html/ rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
fi fi
done done
if [ "$installed_version" != "0.0.0~unknown" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
run_as 'php /var/www/html/occ upgrade --no-app-disable' run_as 'php /var/www/html/occ upgrade --no-app-disable'
run_as 'php /var/www/html/occ app:list' > /tmp/list_after run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_after
echo "The following apps have beed disabled:" echo "The following apps have beed disabled:"
diff <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_before) <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_after) | grep '<' | cut -d- -f2 | cut -d: -f1 diff /tmp/list_before /tmp/list_after | grep '<' | cut -d- -f2 | cut -d: -f1
rm -f /tmp/list_before /tmp/list_after rm -f /tmp/list_before /tmp/list_after
fi fi
fi fi

View file

@ -4,8 +4,6 @@ FROM php:7.1-fpm-alpine
RUN set -ex; \ RUN set -ex; \
\ \
apk add --no-cache \ apk add --no-cache \
bash \
coreutils \
rsync \ rsync \
; \ ; \
\ \

View file

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
set -e set -eu
exec busybox crond -f -l 0 -L /dev/stdout exec busybox crond -f -l 0 -L /dev/stdout

View file

@ -1,29 +1,31 @@
#!/bin/bash #!/bin/sh
set -e set -eu
# version_greater A B returns whether A > B # version_greater A B returns whether A > B
function version_greater() { version_greater() {
[[ "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1" ]]; [ "$(printf '%s\n' "$@" | sort -t '.' -n -k1,1 -k2,2 -k3,3 -k4,4 | head -n 1)" != "$1" ]
} }
# return true if specified directory is empty # return true if specified directory is empty
function directory_empty() { directory_empty() {
[ -n "$(find "$1"/ -prune -empty)" ] [ -z "$(ls -A "$1/")" ]
} }
function run_as() { run_as() {
if [[ $EUID -eq 0 ]]; then if [ "$(id -u)" = 0 ]; then
su - www-data -s /bin/bash -c "$1" su - www-data -s /bin/sh -c "$1"
else else
bash -c "$1" sh -c "$1"
fi fi
} }
installed_version="0.0.0~unknown" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then
installed_version=$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);') # shellcheck disable=SC2016
installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
fi fi
image_version=$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);') # shellcheck disable=SC2016
image_version="$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);')"
if version_greater "$installed_version" "$image_version"; then if version_greater "$installed_version" "$image_version"; then
echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?" echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?"
@ -31,10 +33,10 @@ if version_greater "$installed_version" "$image_version"; then
fi fi
if version_greater "$image_version" "$installed_version"; then if version_greater "$image_version" "$installed_version"; then
if [ "$installed_version" != "0.0.0~unknown" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
run_as 'php /var/www/html/occ app:list' > /tmp/list_before run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_before
fi fi
if [[ $EUID -eq 0 ]]; then if [ "$(id -u)" = 0 ]; then
rsync_options="-rlDog --chown www-data:root" rsync_options="-rlDog --chown www-data:root"
else else
rsync_options="-rlD" rsync_options="-rlD"
@ -42,17 +44,17 @@ if version_greater "$image_version" "$installed_version"; then
rsync $rsync_options --delete --exclude /config/ --exclude /data/ --exclude /custom_apps/ --exclude /themes/ /usr/src/nextcloud/ /var/www/html/ rsync $rsync_options --delete --exclude /config/ --exclude /data/ --exclude /custom_apps/ --exclude /themes/ /usr/src/nextcloud/ /var/www/html/
for dir in config data custom_apps themes; do for dir in config data custom_apps themes; do
if [ ! -d /var/www/html/"$dir" ] || directory_empty /var/www/html/"$dir"; then if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
rsync $rsync_options --include /"$dir"/ --exclude '/*' /usr/src/nextcloud/ /var/www/html/ rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
fi fi
done done
if [ "$installed_version" != "0.0.0~unknown" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
run_as 'php /var/www/html/occ upgrade --no-app-disable' run_as 'php /var/www/html/occ upgrade --no-app-disable'
run_as 'php /var/www/html/occ app:list' > /tmp/list_after run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_after
echo "The following apps have beed disabled:" echo "The following apps have beed disabled:"
diff <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_before) <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_after) | grep '<' | cut -d- -f2 | cut -d: -f1 diff /tmp/list_before /tmp/list_after | grep '<' | cut -d- -f2 | cut -d: -f1
rm -f /tmp/list_before /tmp/list_after rm -f /tmp/list_before /tmp/list_after
fi fi
fi fi

View file

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
set -e set -eu
exec busybox crond -f -l 0 -L /dev/stdout exec busybox crond -f -l 0 -L /dev/stdout

View file

@ -1,29 +1,31 @@
#!/bin/bash #!/bin/sh
set -e set -eu
# version_greater A B returns whether A > B # version_greater A B returns whether A > B
function version_greater() { version_greater() {
[[ "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1" ]]; [ "$(printf '%s\n' "$@" | sort -t '.' -n -k1,1 -k2,2 -k3,3 -k4,4 | head -n 1)" != "$1" ]
} }
# return true if specified directory is empty # return true if specified directory is empty
function directory_empty() { directory_empty() {
[ -n "$(find "$1"/ -prune -empty)" ] [ -z "$(ls -A "$1/")" ]
} }
function run_as() { run_as() {
if [[ $EUID -eq 0 ]]; then if [ "$(id -u)" = 0 ]; then
su - www-data -s /bin/bash -c "$1" su - www-data -s /bin/sh -c "$1"
else else
bash -c "$1" sh -c "$1"
fi fi
} }
installed_version="0.0.0~unknown" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then
installed_version=$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);') # shellcheck disable=SC2016
installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
fi fi
image_version=$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);') # shellcheck disable=SC2016
image_version="$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);')"
if version_greater "$installed_version" "$image_version"; then if version_greater "$installed_version" "$image_version"; then
echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?" echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?"
@ -31,10 +33,10 @@ if version_greater "$installed_version" "$image_version"; then
fi fi
if version_greater "$image_version" "$installed_version"; then if version_greater "$image_version" "$installed_version"; then
if [ "$installed_version" != "0.0.0~unknown" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
run_as 'php /var/www/html/occ app:list' > /tmp/list_before run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_before
fi fi
if [[ $EUID -eq 0 ]]; then if [ "$(id -u)" = 0 ]; then
rsync_options="-rlDog --chown www-data:root" rsync_options="-rlDog --chown www-data:root"
else else
rsync_options="-rlD" rsync_options="-rlD"
@ -42,17 +44,17 @@ if version_greater "$image_version" "$installed_version"; then
rsync $rsync_options --delete --exclude /config/ --exclude /data/ --exclude /custom_apps/ --exclude /themes/ /usr/src/nextcloud/ /var/www/html/ rsync $rsync_options --delete --exclude /config/ --exclude /data/ --exclude /custom_apps/ --exclude /themes/ /usr/src/nextcloud/ /var/www/html/
for dir in config data custom_apps themes; do for dir in config data custom_apps themes; do
if [ ! -d /var/www/html/"$dir" ] || directory_empty /var/www/html/"$dir"; then if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
rsync $rsync_options --include /"$dir"/ --exclude '/*' /usr/src/nextcloud/ /var/www/html/ rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
fi fi
done done
if [ "$installed_version" != "0.0.0~unknown" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
run_as 'php /var/www/html/occ upgrade --no-app-disable' run_as 'php /var/www/html/occ upgrade --no-app-disable'
run_as 'php /var/www/html/occ app:list' > /tmp/list_after run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_after
echo "The following apps have beed disabled:" echo "The following apps have beed disabled:"
diff <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_before) <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_after) | grep '<' | cut -d- -f2 | cut -d: -f1 diff /tmp/list_before /tmp/list_after | grep '<' | cut -d- -f2 | cut -d: -f1
rm -f /tmp/list_before /tmp/list_after rm -f /tmp/list_before /tmp/list_after
fi fi
fi fi

View file

@ -4,8 +4,6 @@ FROM php:%%PHP_VERSION%%-%%VARIANT%%
RUN set -ex; \ RUN set -ex; \
\ \
apk add --no-cache \ apk add --no-cache \
bash \
coreutils \
rsync \ rsync \
; \ ; \
\ \

View file

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
set -e set -eu
exec busybox crond -f -l 0 -L /dev/stdout exec busybox crond -f -l 0 -L /dev/stdout

View file

@ -1,29 +1,31 @@
#!/bin/bash #!/bin/sh
set -e set -eu
# version_greater A B returns whether A > B # version_greater A B returns whether A > B
function version_greater() { version_greater() {
[[ "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1" ]]; [ "$(printf '%s\n' "$@" | sort -t '.' -n -k1,1 -k2,2 -k3,3 -k4,4 | head -n 1)" != "$1" ]
} }
# return true if specified directory is empty # return true if specified directory is empty
function directory_empty() { directory_empty() {
[ -n "$(find "$1"/ -prune -empty)" ] [ -z "$(ls -A "$1/")" ]
} }
function run_as() { run_as() {
if [[ $EUID -eq 0 ]]; then if [ "$(id -u)" = 0 ]; then
su - www-data -s /bin/bash -c "$1" su - www-data -s /bin/sh -c "$1"
else else
bash -c "$1" sh -c "$1"
fi fi
} }
installed_version="0.0.0~unknown" installed_version="0.0.0.0"
if [ -f /var/www/html/version.php ]; then if [ -f /var/www/html/version.php ]; then
installed_version=$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);') # shellcheck disable=SC2016
installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
fi fi
image_version=$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);') # shellcheck disable=SC2016
image_version="$(php -r 'require "/usr/src/nextcloud/version.php"; echo implode(".", $OC_Version);')"
if version_greater "$installed_version" "$image_version"; then if version_greater "$installed_version" "$image_version"; then
echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?" echo "Can't start Nextcloud because the version of the data ($installed_version) is higher than the docker image version ($image_version) and downgrading is not supported. Are you sure you have pulled the newest image version?"
@ -31,10 +33,10 @@ if version_greater "$installed_version" "$image_version"; then
fi fi
if version_greater "$image_version" "$installed_version"; then if version_greater "$image_version" "$installed_version"; then
if [ "$installed_version" != "0.0.0~unknown" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
run_as 'php /var/www/html/occ app:list' > /tmp/list_before run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_before
fi fi
if [[ $EUID -eq 0 ]]; then if [ "$(id -u)" = 0 ]; then
rsync_options="-rlDog --chown www-data:root" rsync_options="-rlDog --chown www-data:root"
else else
rsync_options="-rlD" rsync_options="-rlD"
@ -42,17 +44,17 @@ if version_greater "$image_version" "$installed_version"; then
rsync $rsync_options --delete --exclude /config/ --exclude /data/ --exclude /custom_apps/ --exclude /themes/ /usr/src/nextcloud/ /var/www/html/ rsync $rsync_options --delete --exclude /config/ --exclude /data/ --exclude /custom_apps/ --exclude /themes/ /usr/src/nextcloud/ /var/www/html/
for dir in config data custom_apps themes; do for dir in config data custom_apps themes; do
if [ ! -d /var/www/html/"$dir" ] || directory_empty /var/www/html/"$dir"; then if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
rsync $rsync_options --include /"$dir"/ --exclude '/*' /usr/src/nextcloud/ /var/www/html/ rsync $rsync_options --include "/$dir/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/
fi fi
done done
if [ "$installed_version" != "0.0.0~unknown" ]; then if [ "$installed_version" != "0.0.0.0" ]; then
run_as 'php /var/www/html/occ upgrade --no-app-disable' run_as 'php /var/www/html/occ upgrade --no-app-disable'
run_as 'php /var/www/html/occ app:list' > /tmp/list_after run_as 'php /var/www/html/occ app:list' | sed -n "/Enabled:/,/Disabled:/p" > /tmp/list_after
echo "The following apps have beed disabled:" echo "The following apps have beed disabled:"
diff <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_before) <(sed -n "/Enabled:/,/Disabled:/p" /tmp/list_after) | grep '<' | cut -d- -f2 | cut -d: -f1 diff /tmp/list_before /tmp/list_after | grep '<' | cut -d- -f2 | cut -d: -f1
rm -f /tmp/list_before /tmp/list_after rm -f /tmp/list_before /tmp/list_after
fi fi
fi fi