如题,由于之前自己的postgresql docker镜像异常后重置了,数据都丢失了,耽误了不少事,所以希望有个一劳永逸的docker-compose配置来减少后续麻烦。
要求是尽量减少依赖,尽量在一个docker里,找ai问了下,ai给了两个如下的示例方案感觉都不算特别简洁,特来求助各位佬。
# docker-compose.yml
services:
postgres:
image: postgres:15
environment:
POSTGRES_PASSWORD: secret
volumes:
- pgdata:/var/lib/postgresql/data
- ./backups:/backups
# 定时备份服务
backup:
image: ofelia:latest
depends_on:
- postgres
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./backups:/backups
command: >
job-exec --name backup
--schedule "0 2 * * *"
--docker postgres
-- pg_dump -U postgres postgres | gzip > /backups/backup_$(date +%Y%m%d_%H%M%S).sql.gz
# docker-compose.yml
services:
postgres:
image: postgres:15
environment:
POSTGRES_PASSWORD: secret
volumes:
- pgdata:/var/lib/postgresql/data
# 定时备份容器
pgbackup:
image: postgres:15
volumes:
- pgdata:/var/lib/postgresql/data
- ./backups:/backups
command: >
sh -c 'echo "0 2 * * * pg_dump -h postgres -U postgres postgres | gzip > /backups/backup_$(date +%%Y%%m%%d_%%H%%M%%S).sql.gz"
>> /etc/cron.d/backup && cron && tail -f /dev/null'
depends_on:
- postgres
restart: unless-stopped
6 个帖子 - 4 位参与者