
tcousin/duplicity-with-prometheus-metrics本Docker镜像旨在定期执行Duplicity备份任务,并集成Prometheus指标暴露功能,便于监控备份任务的执行状态与结果。镜像封装了Duplicity备份工具与周期调度能力,同时提供标准化监控指标,适用于需要自动化备份且关注任务可观测性的场景。注意:当前镜像仍处于测试阶段,不建议直接用于生产环境。
bashdocker run -d \ --name periodic-duplicity \ -p 9090:9090 \ # Prometheus指标端口 -e BACKUP_SOURCE="/data/source" \ # 待备份数据路径(容器内) -e BACKUP_TARGET="s3://my-backup-bucket/data" \ # 备份目标路径(支持Duplicity兼容协议) -e CRON_SCHEDULE="0 3 * * *" \ # 每日凌晨3点执行备份 -e DUPLICITY_OPTIONS="--full-if-older-than 7D --encrypt-key ABC123" \ # Duplicity额外参数(如加密密钥、完整备份周期) -v /host/data:/data/source:ro \ # 挂载宿主机数据到容器内备份源路径 -v /host/gnupg:/root/.gnupg:ro \ # 挂载GnuPG密钥目录(用于加密备份) -v /host/backup-config:/etc/backup:ro \ # 可选:挂载自定义配置文件 periodic-duplicity-prometheus:latest
| 环境变量名 | 说明 | 默认值 | 是否必填 |
|---|---|---|---|
BACKUP_SOURCE | 容器内待备份数据的绝对路径 | - | 是 |
BACKUP_TARGET | 备份目标路径(支持file:///s3:///ftp://等Duplicity兼容协议) | - | 是 |
CRON_SCHEDULE | cron表达式,定义备份执行周期(如0 */6 * * *表示每6小时执行一次) | - | 是 |
PROMETHEUS_PORT | Prometheus指标暴露端口 | 9090 | 否 |
METRICS_PATH | Prometheus指标接口路径 | /metrics | 否 |
DUPLICITY_OPTIONS | 传递给Duplicity命令的额外参数(如--compress --exclude *.log) | 空 | 否 |
LOG_LEVEL | 日志输出级别(支持debug/info/warn/error) | info | 否 |
BACKUP_PRE_HOOK | 备份执行前的自定义命令(如数据预处理脚本路径) | 空 | 否 |
BACKUP_POST_HOOK | 备份执行后的自定义命令(如清理临时文件脚本路径) | 空 | 否 |
镜像默认在PROMETHEUS_PORT端口的METRICS_PATH路径暴露以下指标,可配置Prometheus抓取规则进行监控:
| 指标名称 | 类型 | 说明 |
|---|---|---|
backup_job_success | Gauge | 最近一次备份任务执行结果(1=成功,0=失败,-1=未执行过) |
backup_job_duration_seconds | Gauge | 最近一次备份任务执行耗时(秒) |
backup_files_processed | Gauge | 最近一次备份处理的文件总数 |
backup_last_run_timestamp | Gauge | 最近一次备份任务开始执行的Unix时间戳 |
backup_total_runs | Counter | 自容器启动以来的备份任务总执行次数 |
docker exec执行/usr/local/bin/run-backup.sh),验证配置有效性与目标可用性

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务