请问各位佬如何在docker-compose.yml中实现postgresql的定时备份

如题,由于之前自己的postgresql docker镜像异常后重置了,数据都丢失了,耽误了不少事,所以希望有个一劳永逸的docker-compose配置来减少后续麻烦。 要求是尽量减少依赖,尽量在一个docker里,找ai问了下,ai给了两个如下的示例方案感觉都不算特别简洁,特来求助各位佬。 # ...
请问各位佬如何在docker-compose.yml中实现postgresql的定时备份
请问各位佬如何在docker-compose.yml中实现postgresql的定时备份

如题,由于之前自己的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 位参与者

阅读完整话题

来源: linux.do查看原文