
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
该镜像用于在任何S3端点上执行数据库自动备份,支持在Kubernetes集群中设置定时任务,适用于多种数据库类型。镜像名称为skyloud/job-backup-db,可在https://hub.docker.com/r/skyloud/job-backup-db%E8%8E%B7%E5%8F%96%E3%80%82
| 数据库类型 | 状态 |
|---|---|
| Postgres | ✔️ 已完成 |
| Mysql | ⚡️ 开发中 |
| MariaDB | ✔️ 已完成 |
| MongoDB | ✔️ 已完成 |
使用前需为备份用户配置S3访问策略,以下是各数据库类型的策略配置示例:
Postgres
创建postgres-prod-backup-policy.json文件,内容如下:
json{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::project/", "arn:aws:s3:::project/*" ] }, { "Effect": "Allow", "Action": [ "s3:DeleteObject", "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::project/prod/postgres/*", "arn:aws:s3:::project/prod/postgres" ] } ] }
在MinIO中配置策略:
bashmc admin policy add s3 project-prod-postgres-policy s3-postgres-prod-policy.json mc admin user add s3 project-prod-postgres-user my_very_strong_key_uuid_v4 mc admin policy set s3 project-prod-postgres-policy user=project-prod-postgres-user
MongoDB
创建mongodb-prod-backup-policy.json文件,内容如下:
json{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::project/", "arn:aws:s3:::project/*" ] }, { "Effect": "Allow", "Action": [ "s3:DeleteObject", "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::project/prod/mongodb/*", "arn:aws:s3:::project/prod/mongodb" ] } ] }
在MinIO中配置策略:
bashmc admin policy add s3 project-prod-mongodb-policy s3-mongodb-prod-policy.json mc admin user add s3 project-prod-mongodb-user my_very_strong_key_uuid_v4 mc admin policy set s3 project-prod-mongodb-policy user=project-prod-mongodb-user
MariaDB
创建mariadb-prod-backup-policy.json文件,内容如下:
json{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::project/", "arn:aws:s3:::project/*" ] }, { "Effect": "Allow", "Action": [ "s3:DeleteObject", "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::project/prod/mariadb/*", "arn:aws:s3:::project/prod/mariadb" ] } ] }
在MinIO中配置策略:
bashmc admin policy add s3 project-prod-mariadb-policy s3-mariadb-prod-policy.json mc admin user add s3 project-prod-mariadb-user my_very_strong_key_uuid_v4 mc admin policy set s3 project-prod-mariadb-policy user=project-prod-mariadb-user
Postgres 备份
bashdocker run --rm -it \ -e BAGCLI_DATABASE_HOST="postgres.namespace.svc.cluster.local" \ -e BAGCLI_DATABASE_USER="postgres" \ -e BAGCLI_DATABASE_PASS="db_password" \ -e BAGCLI_BUCKET_PATH="bucket/prod/postgres" \ -e MC_HOST_s3="https://user:password@minio:9000" \ docker.xuanyuan.run/skyloud/job-backup-db postgres database-name
MongoDB 备份
bashdocker run --rm -it \ -e BAGCLI_DATABASE_URI="mongodb://mongoadmin:secret@mongodb-arbiter-0.mongodb-arbiter-headless.database:27017,mongodb-0.mongodb-headless.database:27017,mongodb-1.mongodb-headless.database:27017/mongodb_d_test?replicaSet=rs0&authSource=admin&retryWrites=true&w=majority" \ -e BAGCLI_DATABASE_NAME="mongodb_d_test" \ -e BAGCLI_BUCKET_PATH="bucket/prod/mongodb" \ -e MC_HOST_s3="https://user:password@minio:9000" \ docker.xuanyuan.run/skyloud/job-backup-db mongodb
MariaDB 备份
bashdocker run --rm -it \ -e BAGCLI_MONGODB_HOST="mariadb.namespace.svc.cluster.local" \ -e BAGCLI_MONGODB_PORT="3306" \ -e BAGCLI_DATABASE_USER="test" \ -e BAGCLI_DATABASE_PASS="test" \ -e BAGCLI_BUCKET_PATH="bucket/prod/mariadb" \ -e MC_HOST_s3="https://user:password@minio:9000" \ docker.xuanyuan.run/skyloud/job-backup-db mongodb
开发中(WIP)
PostgreSQL
注意:请使用您自己的值更新文件
kubernetes.yaml
bashkubectl apply -f kubernetes.yaml
MongoDB
注意:请使用您自己的值更新文件
kubernetes_mongodb.yaml
bashkubectl apply -f kubernetes_mongodb.yaml
MariaDB
注意:请使用您自己的值更新文件
kubernetes_mariadb.yaml
bashkubectl apply -f kubernetes_mariadb.yaml
| 版本 | 作者 | 说明 |
|---|---|---|
| 0.1.7 | Quentin DUPUY (@qdupuy) | 在MongoDB备份文件名中添加备份名称 |
| 0.1.6 | Quentin DUPUY (@qdupuy) | 为MongoDB添加URI支持变量 |
| 0.1.5 | Quentin DUPUY (@qdupuy) | 添加显式保存Mongo数据库的变量 |
| 0.1.4 | Quentin DUPUY (@qdupuy) | 修复拼写错误 |
| 0.1.3 | Quentin DUPUY (@qdupuy) | 在归档名称中添加"mysql"以区分SQL服务 |
| 0.1.2 | Etienne (@liogate) & Quentin DUPUY (@qdupuy) | 集成MariaDB |
| 0.1.1 | Quentin DUPUY (@qdupuy) | 集成MongoDB |
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务