
popen2/postgres-backup-s3该Docker镜像提供PostgreSQL数据库到Amazon S3的自动化备份解决方案,集成pg_dump工具和AWS S3客户端,支持定时备份、备份文件压缩及S3存储管理,适用于需要可靠、自动化数据库备份的场景。
| 环境变量 | 描述 | 是否必填 | 默认值 |
|---|---|---|---|
POSTGRES_HOST | PostgreSQL数据库主机地址 | 是 | - |
POSTGRES_PORT | PostgreSQL数据库端口 | 否 | 5432 |
POSTGRES_USER | 数据库访问用户名 | 是 | - |
POSTGRES_PASSWORD | 数据库访问密码 | 是 | - |
POSTGRES_DB | 需备份的数据库名(多个数据库用逗号分隔) | 否 | 所有数据库 |
S3_BUCKET | 目标S3桶名称 | 是 | - |
S3_PATH | S3桶内存储路径(如postgres/backups) | 否 | / |
AWS_ACCESS_KEY_ID | AWS访问密钥ID(需有S3写入权限) | 是 | - |
AWS_SECRET_ACCESS_KEY | AWS密钥密钥 | 是 | - |
AWS_REGION | S3桶所在AWS区域 | 否 | us-east-1 |
BACKUP_INTERVAL | 备份间隔(支持s/m/h单位,如24h) | 否 | 24h |
BACKUP_RETENTION | S3中保留备份文件数量(0为不删除旧备份) | 否 | 0 |
BACKUP_PREFIX | 备份文件前缀(用于区分不同实例) | 否 | pg_backup_ |
bashdocker run -d \ --name postgres-s3-backup \ -e POSTGRES_HOST=postgres-prod \ -e POSTGRES_PORT=5432 \ -e POSTGRES_USER=backup_user \ -e POSTGRES_PASSWORD=secure_password \ -e POSTGRES_DB=app_db,user_db \ -e S3_BUCKET=company-backups \ -e S3_PATH=postgres/prod \ -e AWS_ACCESS_KEY_ID=AKIAEXAMPLEKEY \ -e AWS_SECRET_ACCESS_KEY=example+secret+key \ -e AWS_REGION=us-west-2 \ -e BACKUP_INTERVAL=24h \ -e BACKUP_RETENTION=30 \ your-image-name:latest
yamlversion: '3' services: postgres-backup: image: your-image-name:latest container_name: postgres-s3-backup environment: POSTGRES_HOST: postgres POSTGRES_PORT: 5432 POSTGRES_USER: backup_user POSTGRES_PASSWORD: secure_password POSTGRES_DB: app_db S3_BUCKET: company-backups S3_PATH: postgres/staging AWS_ACCESS_KEY_ID: AKIAEXAMPLEKEY AWS_SECRET_ACCESS_KEY: example+secret+key AWS_REGION: eu-central-1 BACKUP_INTERVAL: 12h BACKUP_RETENTION: 14 restart: unless-stopped depends_on: - postgres
pg_dump所需权限(CONNECT和SELECT权限);AWS密钥需有S3桶的put-object和list-objects权限pg_restore验证备份有效性manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务