Docker image to use rclone to run cron sync with monitoring
1M+
Docker image to perform a rclone sync based on a cron schedule, with healthchecks.io monitoring.
rclone is a command line program to sync files and directories to and from:
rclone needs a configuration file where credentials to access different storage provider are kept.
By default, this image uses a file /config/rclone.conf and a mounted volume may be used to keep that information persisted.
A first run of the container can help in the creation of the file, but feel free to manually create one.
$ mkdir config
$ docker run --rm -it -v $(pwd)/config:/config pfidr/rclone
A few environment variables allow you to customize the behavior of rclone:
SYNC_SRC source location for rclone sync/copy/move command. Directories with spaces should be wrapped in single quotes.SYNC_DEST destination location for rclone sync/copy/move command. Directories with spaces should be wrapped in single quotes.SYNC_OPTS additional options for rclone sync/copy/move command. Defaults to -vSYNC_OPTS_EVAL further additional options for rclone sync/copy/move command. The variables and commands in the string are first interpolated like in a shell. The interpolated string is appended to SYNC_OPTS. That means '--backup-dir /old`date -I`' first evaluates to '--backup-dir /old2019-09-12', which is then appended to SYNC_OPTS. The evaluation happens immediately before rclone is called.SYNC_ONCE set variable to only run the sync one time and then exit the containerRCLONE_CMD set variable to sync copy or move when running rclone. Defaults to syncRCLONE_DIR_CMD set variable to ls or lsf for source directory check style. Defaults to lsRCLONE_DIR_CMD_DEPTH set the limit of the recursion depth to this. Defaults to -1 (rclone default)RCLONE_DIR_CHECK_SKIP set variable to skip source directory check before sync. Use with cautionCRON crontab schedule 0 0 * * * to perform sync every midnight. Also supprorts cron shortcuts: @yearly @monthly @weekly @daily @hourlyCRON_ABORT crontab schedule 0 6 * * * to abort sync at 6amFORCE_SYNC set variable to perform a sync upon bootCHECK_URL healthchecks.io url or similar cron monitoring to perform a GET after a successful syncFAIL_URL Fail URL to perform a GET after unsuccessful execution. By default this is CHECK_URL with appended "/fail" at the endHC_LOG set variable to send log data to healthchecks.io. OUTPUT_LOG must also be set.OUTPUT_LOG set variable to output log file to /logsROTATE_LOG set variable to delete logs older than specified days from /logsTZ set the timezone to use for the cron and log America/ChicagoUID set variable to specify user to run rclone as. Must also use GID.GID set variable to specify group to run rclone as. Must also use UID.When using UID/GID the config and/or logs directory must be writeable by this UID
$ docker run --rm -it -v $(pwd)/config:/config -v /path/to/source:/source -e SYNC_SRC="/source" -e SYNC_DEST="dest:path" -e TZ="America/Chicago" -e CRON="0 0 * * *" -e CRON_ABORT="0 6 * * *" -e FORCE_SYNC=1 -e CHECK_URL=https://hchk.io/hchk_uuid pfidr/rclone
See rclone sync docs for source/dest syntax and additional options.
HC_LOG environment variableRCLONE_DIR_CMD_DEPTH option to declare recursion depth when checking if SYNC_SRC is emptySYNC_SRC and SYNC_DESTContent type
Image
Digest
sha256:0dabf23fb…
Size
25.8 MB
Last updated
about 1 year ago
docker pull pfidr/rclone