
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Docker镜像,用于定期备份PostgreSQL数据库,并可选择将备份文件上传到Amazon S3存储桶。
Docker Hub地址:https://hub.docker.com/r/heyman/postgresql-backup
bashdocker run -it --rm --name=pgbackup \ -e CRON_SCHEDULE="* * * * *" \ -e DB_HOST=数据库主机地址 \ -e DB_USER=用户名 \ -e DB_PASS=密码 \ -e DB_NAME=数据库名称 \ -e S3_PATH='s3://我的存储桶/备份目录/' \ -e AWS_ACCESS_KEY_ID='[AWS访问密钥ID]' \ -e AWS_SECRET_ACCESS_KEY='[AWS密钥]' \ heyman/postgresql-backup:15
CRON_SCHEDULE: crontab文件中的时间调度表达式(例如:15 3 * * * 表示每天凌晨03:15执行备份)DB_HOST: PostgreSQL主机名DB_PASS: PostgreSQL密码DB_USER: PostgreSQL用户名DB_NAME: 数据库名称S3_PATH: Amazon S3路径,格式为:s3://存储桶名称/路径AWS_ACCESS_KEY_ID: AWS访问密钥ID(与S3_PATH配合使用)AWS_SECRET_ACCESS_KEY: AWS密钥(与S3_PATH配合使用)AWS_DEFAULT_REGION: AWS区域S3_STORAGE_CLASS: 指定上传对象的S3存储类别,默认值为STANDARD_IAS3_EXTRA_OPTIONS: 为S3添加额外选项,例如--endpoint=用于自定义S3服务提供商DB_USE_ENV: 从环境变量注入PostgreSQL环境变量,忽略DB_HOST、DB_PASS、DB_USER和DB_NAME,可用于配置高级连接(如mTLS连接)。--env-file=.env):
DB_USE_ENV=True PGSSLMODE=verify-full PGSSLROOTCERT=/path/ca.crt PGSSLCERT=<path>/user.crt PGSSLKEY=<path>/user.key PGHOSTADDR=1.2.3.4 PGHOST=db.domain.com PGUSER=myuser PGDATABASE=mydb
MAIL_TO: 若同时指定MAIL_TO和MAIL_FROM,每次备份后将通过Amazon SES发送邮件通知MAIL_FROM: 邮件发送地址(与MAIL_TO配合使用)WEBHOOK: 指定HTTP请求URL,备份后将发送请求WEBHOOK_METHOD: Webhook的HTTP方法,默认GET,可通过此变量修改WEBHOOK_CURL_OPTIONS: 为curl命令添加额外选项(如请求头),例如-H 'Content-type: application/json'WEBHOOK_DATA: Webhook请求体内容,默认隐含使用POST方法,支持变量插值(如{"text":"备份完成于 %(date)s %(time)s!"})KEEP_BACKUP_DAYS: 保留备份文件的天数,默认7天FILENAME: 备份文件名格式字符串(通过strftime()处理),默认$DB_NAME_%Y-%m-%dPG_DUMP_EXTRA_OPTIONS: pg_dump命令的额外选项,例如--exclude-table-data=table_name用于排除表数据WEBHOOK_DATA中的文本支持通过%(变量)s格式插入以下变量:
date: 日期(yyyy-mm-dd格式)time: 时间(hh:mm:ss格式)duration: 备份耗时(秒)filename: 上传到S3的文件名size: 备份文件大小(带单位,如MB、GB)Slack消息通知示例
WEBHOOK=https://hooks.slack.com/services/.../.../... WEBHOOK_METHOD=POST WEBHOOK_CURL_OPTIONS=-H 'Content-type: application/json' WEBHOOK_DATA={"text":":white_check_mark: 备份完成于 %(date)s %(time)s\n耗时: %(duration)s 秒\n文件: %(filename)s (%(size)s)"}
/data/backups - 数据库备份文件存储目录可通过一次性任务恢复备份,将容器命令设置为python -u /backup/restore.py [backup-filename]([backup-filename]为备份文件名,若需从S3下载则需配置S3相关环境变量)。
DB_HOST: PostgreSQL主机名DB_PASS: PostgreSQL密码DB_USER: PostgreSQL用户名DB_NAME: 目标数据库名称S3_PATH: Amazon S3目录路径(格式:s3://存储桶名称/路径)AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_DEFAULT_REGIONS3_EXTRA_OPTIONS: S3额外选项(如自定义服务端点)DB_USE_ENV: 高级连接配置(见可选环境变量)首次配置时可执行一次性备份测试,将容器命令设置为python -u /backup/backup.py,并传入所有必需环境变量。
基于PostgreSQL官方Alpine镜像构建,可用标签对应PostgreSQL版本:
16、latest151413121110您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务