nextcloud-cronjob/scripts/cron-tasks.sh
Robert Dailey 6416dd8731 Cronjob works now between Nextcloud container recreation
If the Nextcloud container is recreated while the cronjob container is still running, the ID of the
container is obtained each time the cron tasks are executed. Previously it was cached on entrypoint,
so if the ID changed this container would fail.
2019-06-20 19:34:58 -05:00

32 lines
1.2 KiB
Bash
Executable file

#!/usr/bin/env bash
set -e
echo "-------------------------------------------------------------"
echo " Executing Cron Tasks: $(date)"
echo "-------------------------------------------------------------"
# If a user must be specified when executing the task, set up that option here.
# You may also leave NEXTCLOUD_EXEC_USER blank, in which case it will not be used.
if [[ -n "$NEXTCLOUD_EXEC_USER" ]]; then
exec_user="--user $NEXTCLOUD_EXEC_USER"
fi
# Obtain the ID of the container. We do this each iteration since the Nextcloud container may be
# recreated while the cron container is still running. We will need to check for a new container ID
# each time.
containerId="$(/find-container.sh)"
if [[ -z "$containerId" ]]; then
echo "ERROR: Unable to find the Nextcloud container"
exit 1
fi
# Loop through all shell scripts and execute the contents of those scripts in the Nextcloud
# container. It's done this way so that the user may mount more scripts to be executed in addition
# to the default ones.
cd /cron-scripts
for script in *.sh; do
echo "> Running Script: $script"
docker exec $exec_user -i "$containerId" bash < $script
done
echo "> Done"