restic/docker
ferringb 87f26accb7
feat: add integrated nice and ionice options for docker (#5448)
The intended usage here is to basically kick restic as a background
"do it, but don't bother my normal load" process.

This allows passing the following environment variables in to
influence scheduling:

- NICE: usual CPU nice.  Defaults to 0.  This requires CAP_SYS_NICE
  to set a negative nice (IE, prioritize).
- IONICE_CLASS: usual ionice class.  Note that setting realtime
  requires CAP_SYS_ADMIN.  Also note the actual ionice default
  is "none".
- IONICE_PRIORITY: set the priority within the given class.  Ignored
  if no class is specified due to class default of "no scheduler".

---------

Signed-off-by: Brian Harring <ferringb@gmail.com>
Co-authored-by: Michael Eischer <michael.eischer@fau.de>
2025-11-16 16:42:33 +01:00
..
build.sh feat: add integrated nice and ionice options for docker (#5448) 2025-11-16 16:42:33 +01:00
Dockerfile feat: add integrated nice and ionice options for docker (#5448) 2025-11-16 16:42:33 +01:00
Dockerfile.release feat: add integrated nice and ionice options for docker (#5448) 2025-11-16 16:42:33 +01:00
entrypoint.sh feat: add integrated nice and ionice options for docker (#5448) 2025-11-16 16:42:33 +01:00
README.md Add hostname flag to Docker docs 2023-07-01 18:46:31 +02:00

Docker image

Build

From the root of this repository run:

./docker/build.sh

image name will be restic/restic:latest

Run

Set environment variable RESTIC_REPOSITORY and map volume to directories and files like:

docker run --rm --hostname my-host -ti \
    -v $HOME/.restic/passfile:/pass \
    -v $HOME/importantdirectory:/data \
    -e RESTIC_REPOSITORY=rest:https://user:pass@hostname/ \
    restic/restic -p /pass backup /data

Restic relies on the hostname for various operations. Make sure to set a static hostname using --hostname when creating a Docker container, otherwise Docker will assign a random hostname each time.