FROM yavook/kiwi-cron:0.2 LABEL maintainer="jmm@yavook.de" COPY requirements.txt /tmp/ # full install of duplicity distribution RUN set -ex; \ \ # duplicity software dependencies apk --no-cache add \ ca-certificates \ gettext \ gnupg \ lftp \ libffi \ librsync \ libxml2 \ libxslt \ openssh-client \ openssl \ python3 \ rsync \ ; \ update-ca-certificates; \ \ # python packages buildtime dependencies apk --no-cache add --virtual .build-deps \ gcc \ git \ libffi-dev \ librsync-dev \ libxml2-dev \ libxslt-dev \ make \ musl-dev \ openssl-dev \ python3-dev \ py3-pip \ cargo \ ; \ # make use of prebuilt wheels where possible python3 -m pip --no-cache-dir \ install wheel \ ; \ \ # install duplicity python3 -m pip --no-cache-dir \ install -r /tmp/requirements.txt \ ; \ python3 -m pip --no-cache-dir \ install duplicity \ ; \ \ # cleanup python3 -m pip --no-cache-dir \ uninstall -y wheel \ ; \ apk del --purge .build-deps; \ rm -f "/tmp/requirements.txt"; \ rm -rf "${HOME}/.cargo"; # start of kiwi additions here RUN set -ex; \ \ # create /kiwi-backup directory structure mkdir -m 777 /kiwi-backup; \ mkdir -m 777 /kiwi-backup/source; \ mkdir -m 777 /kiwi-backup/target; \ \ # we need to run as root in container. # otherwise, we might miss directories in backup source! mkdir -p "/root/.cache/duplicity"; \ mkdir -pm 700 "/root/.gnupg"; \ \ # confirm duplicity is working duplicity --version; VOLUME [ "/root/.cache/duplicity" ] ENV \ ################# # BACKUP POLICY # ################# SCHEDULE_BACKUP="R 02 * * *" \ SCHEDULE_CLEANUP="R 04 * * *" \ FULL_BACKUP_FREQUENCY=3M \ BACKUP_RETENTION_TIME=6M \ KEEP_NUM_FULL_CHAINS=2 \ \ ###################### # ADDITIONAL OPTIONS # ###################### SCHEDULE_RMFULL="R 05 * * SAT" \ SCHEDULE_RMINCR="R 05 * * SUN" \ BACKUP_VOLSIZE=1024 \ BACKUP_SOURCE="/kiwi-backup/source" \ BACKUP_TARGET="file:///kiwi-backup/target" \ OPTIONS_ALL="" \ OPTIONS_BACKUP="" \ OPTIONS_CLEANUP="" \ OPTIONS_RMFULL="" \ OPTIONS_RMINCR="" \ \ ############## # ENCRYPTION # ############## GPG_KEY_ID="" \ GPG_PASSPHRASE="" COPY bin /usr/local/bin/ COPY libexec /usr/local/libexec/ CMD [ "kiwi-backup" ]