如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
aws-database-backup是基于Alpine Linux的容器镜像,设计用于在Kubernetes环境中作为定时任务(CronJob)运行,实现MySQL/PostgreSQL数据库的自动备份,并将备份文件上传至Amazon S3。同时支持Slack集成,可实时通知备份结果。
mysqldump(MySQL)或pg_dump(PostgreSQL)生成完整数据库备份openssl enc -aes-256-cbc加密备份文件以下是可配置的环境变量列表:
| 环境变量 | 用途说明 |
|---|---|
| AWS_ACCESS_KEY_ID | 必填 AWS IAM访问密钥ID |
| AWS_SECRET_ACCESS_KEY | 必填 AWS IAM秘密访问密钥,建议通过Kubernetes Secret配置,权限需最小化 |
| AWS_DEFAULT_REGION | 必填 S3存储桶所在区域(如eu-west-2) |
| AWS_BUCKET_NAME | 必填 S3存储桶名称 |
| AWS_BUCKET_BACKUP_PATH | 必填 S3中存储备份的路径(如/database/myblog/backups,无需结尾斜杠或文件名) |
| DB_HOST | 必填 数据库主机的域名或IP地址 |
| DB_PORT | 可选 数据库端口(默认:MySQL为3306,PostgreSQL为5432) |
| TARGET_DATABASE_NAMES | 必填 需备份的数据库名称,多个用逗号分隔(如database1,database2) |
| DB_USER | 必填 数据库认证用户名 |
| DB_PASSWORD | 必填 数据库认证密码,建议通过Kubernetes Secret配置 |
| ENCRYPT | 可选 是否启用加密(使用openssl enc -aes-256-cbc -salt) |
| ENCRYPT_PASS | 可选 加密密码,建议通过Kubernetes Secret配置 |
| SLACK_ENABLED | 可选 是否启用Slack集成(默认:false) |
| SLACK_USERNAME | 可选 Slack通知用户名(默认:aws-database-backup) |
| SLACK_CHANNEL | Slack启用时必填 Slack频道名称 |
| SLACK_WEBHOOK_URL | Slack启用时必填 Slack WebHook URL,建议通过Kubernetes Secret配置 |
备份完成后,镜像会向指定Slack频道发送通知:
需先创建Slack Incoming WebHook,再通过上述环境变量配置。
json{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::<BUCKET NAME>" }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": ["s3:PutObject"], "Resource": "arn:aws:s3:::<BUCKET NAME>/*" } ] }
以下是在Kubernetes中配置定时备份任务的示例(每天凌晨1点执行):
yamlapiVersion: v1 kind: Secret metadata: name: aws-secret-access-key type: Opaque data: aws_secret_access_key: <你的AWS秘密访问密钥(Base64编码)> --- apiVersion: v1 kind: Secret metadata: name: db-password type: Opaque data: database_password: <你的数据库密码(Base64编码)> --- apiVersion: v1 kind: Secret metadata: name: slack-webhook-url type: Opaque data: slack_webhook_url: <你的Slack WebHook URL(Base64编码)> --- apiVersion: batch/v1beta1 kind: CronJob metadata: name: my-database-backup spec: schedule: "0 1 * * *" # 每天凌晨1点执行 jobTemplate: spec: template: spec: containers: - name: my-database-backup image: benjaminmaynard/aws-database-backup imagePullPolicy: Always env: - name: AWS_ACCESS_KEY_ID value: "<你的AWS访问密钥ID>" - name: AWS_SECRET_ACCESS_KEY valueFrom: secretKeyRef: name: aws-secret-access-key key: aws_secret_access_key - name: AWS_DEFAULT_REGION value: "<你的S3存储桶区域>" - name: AWS_BUCKET_NAME value: "<你的S3存储桶名称>" - name: AWS_BUCKET_BACKUP_PATH value: "<你的S3备份路径>" - name: DB_HOST value: "<你的数据库主机>" - name: DB_PORT value: "<你的数据库端口>" - name: TARGET_DATABASE_NAMES value: "<你的目标数据库名称(多个用逗号分隔)>" - name: DB_USER value: "<你的数据库用户名>" - name: DB_PASSWORD valueFrom: secretKeyRef: name: db-password key: database_password - name: SLACK_ENABLED value: "<true/false>" - name: SLACK_CHANNEL value: "#chatops" - name: SLACK_WEBHOOK_URL valueFrom: secretKeyRef: name: slack-webhook-url key: slack_webhook_url restartPolicy: Never
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。





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