
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
restic-pg-dump是一个Docker镜像,用于为指定PostgreSQL服务器上的每个数据库单独运行pg_dump,并通过restic工具执行增量加密备份。该镜像默认配置了完整的备份策略,适用于需要定期、安全备份PostgreSQL数据库的场景。
适用于需要定期备份PostgreSQL数据库并确保数据可恢复性的场景,尤其适合生产环境中对数据库备份有严格时间策略和安全要求的用户。支持单数据库集群或多数据库集群的备份需求。
通过docker run命令启动容器,需提供必要的环境变量配置AWS、PostgreSQL和restic的凭证信息:
bash$ docker run \ -d \ -e AWS_ACCESS_KEY_ID='...' \ -e AWS_SECRET_ACCESS_KEY='...' \ -e PGHOST='...' \ -e PGPASSWORD='...' \ -e PGUSER='...' \ -e RESTIC_PASSWORD='...' \ -e RESTIC_REPOSITORY='s3:s3.amazonaws.com/...' \ --name restic-pg-dump \ --restart always \ interaction/restic-pg-dump
除上述必填环境变量外,可通过以下变量覆盖默认配置:
| 环境变量 | 描述 | 默认值 |
|---|---|---|
RESTIC_BACKUP_SCHEDULE | 备份定时任务计划(cron格式) | 0 * * * *(每小时) |
RESTIC_PRUNE_SCHEDULE | 清理旧快照的定时任务计划(cron格式,为空字符串可禁用) | 0 14 * * 0(每周日14:00) |
PGPORT | PostgreSQL端口 | 5432 |
RESTIC_KEEP_HOURLY | 保留的每小时快照数量 | 24 |
RESTIC_KEEP_DAILY | 保留的每日快照数量 | 7 |
RESTIC_KEEP_WEEKLY | 保留的每周快照数量 | 4 |
RESTIC_KEEP_MONTHLY | 保留的每月快照数量 | 12 |
RESTIC_KEEP_YEARLY | 保留的每年快照数量(默认未提及,可通过该变量设置) | - |
支持同时备份最多5个不同的PostgreSQL数据库集群,通过以下环境变量配置([1..5]表示集群编号,如1-5):
bash-e HOSTNAME_2='...' # 集群2的主机名(若PGHOST不是完全限定域名) -e PGHOST_2='...' # 集群2的PostgreSQL主机 -e PGPASSWORD_2='...' # 集群2的PostgreSQL密码 -e PGPORT_2='5432' # 集群2的PostgreSQL端口 -e PGUSER_2='...' # 集群2的PostgreSQL用户名
注:项目提供了
docker-compose.yml文件,便于快速部署。
从示例文件创建.envrc,并更新AWS、PostgreSQL和restic凭证:
bash$ wget https://raw.githubusercontent.com/ixc/restic-pg-dump/master/.envrc.example -O .envrc
限制.envrc文件访问权限(包含敏感凭证):
bash$ chmod 600 .envrc
安装direnv(通过Homebrew)并配置自动加载.envrc:
bash$ brew install direnv $ eval "$(direnv hook bash)" # 根据shell类型(zsh/fish/tcsh等)调整,并添加到shell配置文件 $ direnv allow
安装restic(通过Homebrew):
bash$ brew install restic
列出快照:
bash$ restic snapshots
恢复指定服务器的最新快照:
bash$ restic restore --host {HOSTNAME} --target "restore/{HOSTNAME}" latest
从指定服务器的最新快照中恢复匹配模式的文件:
bash$ restic restore --host "{HOSTNAME}" --target "restore/{HOSTNAME}" --include '*-production.sql' latest
通过fuse挂载仓库(只读):
bash$ restic mount mnt
挂载后,可在另一个终端访问最新快照:
bash$ ls -l "mnt/hosts/{HOSTNAME}/latest" $ psql -f "mnt/hosts/{HOSTNAME}/latest/pg_dump/{DBNAME}.sql" {DBNAME}
警告:通过fuse挂载restic仓库会获取独占锁,在释放锁前会阻止所有定时备份。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




来自真实用户的反馈,见证轩辕镜像的优质服务