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>
This commit is contained in:
ferringbandMichael Eischer authored and GitHub committed 2025-11-16 16:42:33 +01:00
1 parent c854338ad1
commit 87f26accb7
7 files changed
+62 -7

No files matched your search

+4 -2
View File
@@ -1,4 +1,6 @@
#!/bin/sh
root="$(readlink -f "$0")"
root="$(dirname "$(dirname "${root}")")"
set -e
@@ -8,6 +10,6 @@ echo "Build docker image restic/restic:latest"
docker build \
--rm \
--pull \
--file docker/Dockerfile \
--file "${root}"/docker/Dockerfile \
--tag restic/restic:latest \
.
"${root}" "$@"