feat: run in cron or one-shot mode depending if KOPIA_CRON_SCHEDULE is set

This commit is contained in:
Michael Mandl 2023-08-18 16:08:31 +02:00
parent 2be4717780
commit 62569d9abf
Signed by: mandlm
GPG key ID: 4AA25D647AA54CC7
2 changed files with 17 additions and 10 deletions

View file

@ -3,7 +3,7 @@ FROM kopia/kopia
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y cron && rm -rf /var/lib/apt/lists/*
ARG KOPIA_CRON_SCHEDULE="*/30 * * * *"
ARG KOPIA_CRON_SCHEDULE
ENV KOPIA_CRON_SCHEDULE ${KOPIA_CRON_SCHEDULE}
ARG KOPIA_USERNAME

View file

@ -1,14 +1,21 @@
#!/bin/sh
#!/bin/bash
CRONTAB=/etc/cron.d/kopia-backup
if [[ -z ${KOPIA_CRON_SCHEDULE} ]];
then
echo "Running in one-shot mode"
printenv > /etc/environment
/run-backup.sh
else
CRONTAB=/etc/cron.d/kopia-backup
echo "Running cron with schedule ${KOPIA_CRON_SCHEDULE}"
printenv > /etc/environment
echo "${KOPIA_CRON_SCHEDULE} /run-backup.sh > /var/log/kopia-backup.log 2>&1" > ${CRONTAB}
chmod 0644 ${CRONTAB}
crontab ${CRONTAB}
echo "Running cron with schedule ${KOPIA_CRON_SCHEDULE}"
touch /var/log/kopia-backup.log
cron && tail -f /var/log/kopia-backup.log
echo "${KOPIA_CRON_SCHEDULE} /run-backup.sh > /var/log/kopia-backup.log 2>&1" > ${CRONTAB}
chmod 0644 ${CRONTAB}
crontab ${CRONTAB}
touch /var/log/kopia-backup.log
cron && tail -f /var/log/kopia-backup.log
fi