mirror of
https://github.com/restic/restic.git
synced 2026-02-03 12:29:37 -05:00
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>
24 lines
648 B
Docker
24 lines
648 B
Docker
FROM golang:1.23-alpine AS builder
|
|
|
|
WORKDIR /go/src/github.com/restic/restic
|
|
|
|
# Caching dependencies
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
|
|
COPY . .
|
|
RUN go run build.go
|
|
FROM alpine:latest AS restic
|
|
RUN apk add --no-cache ca-certificates fuse openssh-client tzdata jq
|
|
|
|
COPY --from=builder /go/src/github.com/restic/restic/restic /usr/bin
|
|
COPY ./docker/entrypoint.sh /entrypoint.sh
|
|
|
|
# IO class default is "none"- 0, however busybox reject ionice `-c0 -n<something>`
|
|
# since priority has no meaning for no scheduler.
|
|
# Thus the entrypoint script below is necessary
|
|
ENV IONICE_CLASS=
|
|
ENV IONICE_PRIORITY=4
|
|
ENV NICE=0
|
|
|
|
ENTRYPOINT ["/entrypoint.sh"]
|