a73x

deploy/server/backup.Dockerfile

Ref:   Size: 1.2 KiB   History

# The nightly backup job's image: alpine with sqlite already in it.
#
# The job used to run `apk add --no-cache sqlite` on every execution, which put
# the Alpine CDN on the critical path of the one thing that protects a database
# nobody can rebuild. A transient fetch failure took the night's backup with it,
# and the only trace was a CronJob pod in Error that nothing was watching.
#
# Nothing here is versioned against a release: the job runs one sqlite command
# and does not change when eitri does, so this image carries its own tag and is
# rebuilt only when the base moves.
# 3.24, not the 3.20 the job inherited: 3.20 is past end-of-life, so it receives
# no further security fixes and the image scanner's --ignore-unfixed would then
# quietly pass anything found in it. Bump when this line goes EOL too.
FROM docker.io/library/alpine:3.24

# The base tag lags Alpine's own package repo, so an image built while an
# advisory is open carries the vulnerable package and scan-image refuses it.
# Take the distro's fixes here rather than waiting for the base to be rebuilt.
RUN apk --no-cache upgrade && apk add --no-cache sqlite

# Backups are written to a mounted PVC as root; the job creates /data/backups.
ENTRYPOINT ["/bin/sh", "-c"]